mirror of
https://github.com/magefree/mage.git
synced 2025-12-21 19:11:59 -08:00
[TDM] Implement Elspeth, Storm Slayer
This commit is contained in:
parent
8bde863b94
commit
2bf680fb2a
2 changed files with 75 additions and 0 deletions
74
Mage.Sets/src/mage/cards/e/ElspethStormSlayer.java
Normal file
74
Mage.Sets/src/mage/cards/e/ElspethStormSlayer.java
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
package mage.cards.e;
|
||||||
|
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.LoyaltyAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||||
|
import mage.abilities.effects.common.counter.AddCountersAllEffect;
|
||||||
|
import mage.abilities.effects.common.replacement.CreateTwiceThatManyTokensEffect;
|
||||||
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.*;
|
||||||
|
import mage.counters.CounterType;
|
||||||
|
import mage.filter.FilterPermanent;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
import mage.filter.common.FilterOpponentsCreaturePermanent;
|
||||||
|
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||||
|
import mage.game.permanent.token.SoldierToken;
|
||||||
|
import mage.target.TargetPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class ElspethStormSlayer extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterPermanent filter
|
||||||
|
= new FilterOpponentsCreaturePermanent("creature an opponent controls with mana value 3 or greater");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(new ManaValuePredicate(ComparisonType.MORE_THAN, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ElspethStormSlayer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{W}{W}");
|
||||||
|
|
||||||
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.ELSPETH);
|
||||||
|
this.setStartingLoyalty(5);
|
||||||
|
|
||||||
|
// If one or more tokens would be created under your control, twice that many of those tokens are created instead.
|
||||||
|
this.addAbility(new SimpleStaticAbility(new CreateTwiceThatManyTokensEffect()));
|
||||||
|
|
||||||
|
// +1: Create a 1/1 white Soldier creature token.
|
||||||
|
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new SoldierToken()), 1));
|
||||||
|
|
||||||
|
// 0: Put a +1/+1 counter on each creature you control. Those creatures gain flying until your next turn.
|
||||||
|
Ability ability = new LoyaltyAbility(new AddCountersAllEffect(
|
||||||
|
CounterType.P1P1.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE
|
||||||
|
), 0);
|
||||||
|
ability.addEffect(new GainAbilityControlledEffect(
|
||||||
|
FlyingAbility.getInstance(), Duration.EndOfTurn,
|
||||||
|
StaticFilters.FILTER_CONTROLLED_CREATURE
|
||||||
|
).setText("those creatures gain flying until end of turn"));
|
||||||
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
// -3: Destroy target creature an opponent controls with mana value 3 or greater.
|
||||||
|
ability = new LoyaltyAbility(new DestroyTargetEffect(), -3);
|
||||||
|
ability.addTarget(new TargetPermanent(filter));
|
||||||
|
this.addAbility(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ElspethStormSlayer(final ElspethStormSlayer card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ElspethStormSlayer copy() {
|
||||||
|
return new ElspethStormSlayer(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -78,6 +78,7 @@ public final class TarkirDragonstorm extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Dragonstorm Globe", 241, Rarity.COMMON, mage.cards.d.DragonstormGlobe.class));
|
cards.add(new SetCardInfo("Dragonstorm Globe", 241, Rarity.COMMON, mage.cards.d.DragonstormGlobe.class));
|
||||||
cards.add(new SetCardInfo("Dusyut Earthcarver", 141, Rarity.COMMON, mage.cards.d.DusyutEarthcarver.class));
|
cards.add(new SetCardInfo("Dusyut Earthcarver", 141, Rarity.COMMON, mage.cards.d.DusyutEarthcarver.class));
|
||||||
cards.add(new SetCardInfo("Duty Beyond Death", 10, Rarity.UNCOMMON, mage.cards.d.DutyBeyondDeath.class));
|
cards.add(new SetCardInfo("Duty Beyond Death", 10, Rarity.UNCOMMON, mage.cards.d.DutyBeyondDeath.class));
|
||||||
|
cards.add(new SetCardInfo("Elspeth, Storm Slayer", 11, Rarity.MYTHIC, mage.cards.e.ElspethStormSlayer.class));
|
||||||
cards.add(new SetCardInfo("Embermouth Sentinel", 242, Rarity.COMMON, mage.cards.e.EmbermouthSentinel.class));
|
cards.add(new SetCardInfo("Embermouth Sentinel", 242, Rarity.COMMON, mage.cards.e.EmbermouthSentinel.class));
|
||||||
cards.add(new SetCardInfo("Encroaching Dragonstorm", 142, Rarity.UNCOMMON, mage.cards.e.EncroachingDragonstorm.class));
|
cards.add(new SetCardInfo("Encroaching Dragonstorm", 142, Rarity.UNCOMMON, mage.cards.e.EncroachingDragonstorm.class));
|
||||||
cards.add(new SetCardInfo("Equilibrium Adept", 106, Rarity.UNCOMMON, mage.cards.e.EquilibriumAdept.class));
|
cards.add(new SetCardInfo("Equilibrium Adept", 106, Rarity.UNCOMMON, mage.cards.e.EquilibriumAdept.class));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue