implement [MH3] Voltstorm Angel

This commit is contained in:
Susucre 2024-05-25 19:18:08 +02:00
parent 5cc38a1225
commit 4cf99b41b1
3 changed files with 75 additions and 5 deletions

View file

@ -37,21 +37,21 @@ public final class HyldaOfTheIcyCrown extends CardImpl {
// Whenever you tap an untapped creature an opponent controls, you may pay {1}. When you do, choose one --
// * Create a 4/4 white and blue Elemental creature token.
ReflexiveTriggeredAbility delayed = new ReflexiveTriggeredAbility(
ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility(
new CreateTokenEffect(new Elemental44WUToken()), false
);
// * Put a +1/+1 counter on each creature you control.
delayed.addMode(new Mode(new AddCountersAllEffect(
reflexive.addMode(new Mode(new AddCountersAllEffect(
CounterType.P1P1.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE
)));
// * Scry 2, then draw a card.
Mode mode = new Mode(new ScryEffect(2, false));
mode.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then"));
delayed.addMode(mode);
reflexive.addMode(mode);
this.addAbility(new TapUntappedPermanentTriggeredAbility(
new DoWhenCostPaid(delayed, new GenericManaCost(1), "Pay {1}?"),
new DoWhenCostPaid(reflexive, new GenericManaCost(1), "Pay {1}?"),
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE
));
}

View file

@ -0,0 +1,69 @@
package mage.cards.v;
import mage.MageInt;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.PayEnergyCost;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController;
import java.util.UUID;
/**
* @author Susucr
*/
public final class VoltstormAngel extends CardImpl {
public VoltstormAngel(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}");
this.subtype.add(SubType.ANGEL);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Flying
this.addAbility(FlyingAbility.getInstance());
// When Voltstorm Angel enters the battlefield, you get {E}{E}{E}.
this.addAbility(new EntersBattlefieldTriggeredAbility(new GetEnergyCountersControllerEffect(3)));
// At the beginning of combat on your turn, you may pay {E}{E}. When you do, choose one --
// * Voltstorm Angel gains vigilance and lifelink until end of turn.
ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility(
new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn)
.setText("{this} gains vigilance"), false
);
reflexive.addEffect(
new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn)
.setText("and lifelink until end of turn")
);
// * Other creatures you control get +1/+1 until end of turn.
reflexive.addMode(new Mode(new BoostControlledEffect(1, 1, Duration.EndOfTurn, true)));
this.addAbility(new BeginningOfCombatTriggeredAbility(
new DoWhenCostPaid(reflexive, new PayEnergyCost(2), "Pay {E}{E}?"),
TargetController.YOU, false
));
}
private VoltstormAngel(final VoltstormAngel card) {
super(card);
}
@Override
public VoltstormAngel copy() {
return new VoltstormAngel(this);
}
}

View file

@ -154,6 +154,7 @@ public final class ModernHorizons3 extends ExpansionSet {
cards.add(new SetCardInfo("Ulamog, the Defiler", 15, Rarity.MYTHIC, mage.cards.u.UlamogTheDefiler.class));
cards.add(new SetCardInfo("Urza's Cave", 234, Rarity.UNCOMMON, mage.cards.u.UrzasCave.class));
cards.add(new SetCardInfo("Victimize", 278, Rarity.UNCOMMON, mage.cards.v.Victimize.class));
cards.add(new SetCardInfo("Voltstorm Angel", 46, Rarity.UNCOMMON, mage.cards.v.VoltstormAngel.class));
cards.add(new SetCardInfo("Warren Soultrader", 110, Rarity.RARE, mage.cards.w.WarrenSoultrader.class));
cards.add(new SetCardInfo("Waterlogged Teachings", 261, Rarity.UNCOMMON, mage.cards.w.WaterloggedTeachings.class));
cards.add(new SetCardInfo("White Orchid Phantom", 47, Rarity.RARE, mage.cards.w.WhiteOrchidPhantom.class));