mirror of
https://github.com/correl/mage.git
synced 2025-01-13 19:11:33 +00:00
[NEO] Implemented Kura, the Boundless Sky
This commit is contained in:
parent
8d2db4815d
commit
5940ff7cfd
3 changed files with 117 additions and 0 deletions
88
Mage.Sets/src/mage/cards/k/KuraTheBoundlessSky.java
Normal file
88
Mage.Sets/src/mage/cards/k/KuraTheBoundlessSky.java
Normal file
|
@ -0,0 +1,88 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.LandsYouControlCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||
import mage.abilities.hint.common.LandsYouControlHint;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SpiritGreenXToken;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class KuraTheBoundlessSky extends CardImpl {
|
||||
|
||||
public KuraTheBoundlessSky(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.DRAGON);
|
||||
this.subtype.add(SubType.SPIRIT);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Deathtouch
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
|
||||
// When Kura, the Boundless Sky dies, choose one —
|
||||
// • Search your library for up to three land cards, reveal them, put them into your hand, then shuffle.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new SearchLibraryPutInHandEffect(
|
||||
new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_LANDS)
|
||||
));
|
||||
|
||||
// • Create an X/X green Spirit creature token, where X is the number of lands you control.
|
||||
ability.addMode(new Mode(new KuraTheBoundlessSkyEffect()));
|
||||
this.addAbility(ability.addHint(LandsYouControlHint.instance));
|
||||
}
|
||||
|
||||
private KuraTheBoundlessSky(final KuraTheBoundlessSky card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KuraTheBoundlessSky copy() {
|
||||
return new KuraTheBoundlessSky(this);
|
||||
}
|
||||
}
|
||||
|
||||
class KuraTheBoundlessSkyEffect extends OneShotEffect {
|
||||
|
||||
KuraTheBoundlessSkyEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "create an X/X green Spirit creature token, where X is the number of lands you control";
|
||||
}
|
||||
|
||||
private KuraTheBoundlessSkyEffect(final KuraTheBoundlessSkyEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KuraTheBoundlessSkyEffect copy() {
|
||||
return new KuraTheBoundlessSkyEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
int xValue = LandsYouControlCount.instance.calculate(game, source, this);
|
||||
return new SpiritGreenXToken(xValue).putOntoBattlefield(1, game, source);
|
||||
}
|
||||
}
|
|
@ -148,6 +148,7 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Kirin-Touched Orochi", 212, Rarity.RARE, mage.cards.k.KirinTouchedOrochi.class));
|
||||
cards.add(new SetCardInfo("Kitsune Ace", 22, Rarity.COMMON, mage.cards.k.KitsuneAce.class));
|
||||
cards.add(new SetCardInfo("Kodama of the West Tree", 199, Rarity.MYTHIC, mage.cards.k.KodamaOfTheWestTree.class));
|
||||
cards.add(new SetCardInfo("Kura, the Boundless Sky", 200, Rarity.MYTHIC, mage.cards.k.KuraTheBoundlessSky.class));
|
||||
cards.add(new SetCardInfo("Kyodai, Soul of Kamigawa", 23, Rarity.RARE, mage.cards.k.KyodaiSoulOfKamigawa.class));
|
||||
cards.add(new SetCardInfo("Leech Gauntlet", 106, Rarity.UNCOMMON, mage.cards.l.LeechGauntlet.class));
|
||||
cards.add(new SetCardInfo("Life of Toshiro Umezawa", 108, Rarity.UNCOMMON, mage.cards.l.LifeOfToshiroUmezawa.class));
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SpiritGreenXToken extends TokenImpl {
|
||||
|
||||
public SpiritGreenXToken(int xValue) {
|
||||
super("Spirit token", "X/X green Spirit creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.SPIRIT);
|
||||
color.setGreen(true);
|
||||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
}
|
||||
|
||||
public SpiritGreenXToken(final SpiritGreenXToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritGreenXToken copy() {
|
||||
return new SpiritGreenXToken(this);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue