mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
[NEO] Implemented Satoru Umezawa
This commit is contained in:
parent
a323118c2e
commit
e683c58e08
3 changed files with 127 additions and 2 deletions
123
Mage.Sets/src/mage/cards/s/SatoruUmezawa.java
Normal file
123
Mage.Sets/src/mage/cards/s/SatoruUmezawa.java
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
package mage.cards.s;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.TriggeredAbilityImpl;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||||
|
import mage.abilities.effects.ContinuousEffectImpl;
|
||||||
|
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
||||||
|
import mage.abilities.keyword.NinjutsuAbility;
|
||||||
|
import mage.cards.Card;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.*;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.events.GameEvent;
|
||||||
|
import mage.game.stack.StackAbility;
|
||||||
|
import mage.players.Player;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class SatoruUmezawa extends CardImpl {
|
||||||
|
|
||||||
|
public SatoruUmezawa(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{B}");
|
||||||
|
|
||||||
|
this.addSuperType(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.HUMAN);
|
||||||
|
this.subtype.add(SubType.NINJA);
|
||||||
|
this.power = new MageInt(2);
|
||||||
|
this.toughness = new MageInt(4);
|
||||||
|
|
||||||
|
// Whenever you activate a ninjutsu ability, look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. This ability triggers only once each turn.
|
||||||
|
this.addAbility(new SatoruUmezawaTriggeredAbility());
|
||||||
|
|
||||||
|
// Each creature card in your hand has ninjutsu {2}{U}{B}.
|
||||||
|
this.addAbility(new SimpleStaticAbility(new SatoruUmezawaEffect()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private SatoruUmezawa(final SatoruUmezawa card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SatoruUmezawa copy() {
|
||||||
|
return new SatoruUmezawa(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SatoruUmezawaTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
|
SatoruUmezawaTriggeredAbility() {
|
||||||
|
super(Zone.BATTLEFIELD, new LookLibraryAndPickControllerEffect(
|
||||||
|
StaticValue.get(3), false, StaticValue.get(1),
|
||||||
|
StaticFilters.FILTER_CARD, Zone.LIBRARY, false, false
|
||||||
|
));
|
||||||
|
this.setTriggersOnce(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SatoruUmezawaTriggeredAbility(final SatoruUmezawaTriggeredAbility ability) {
|
||||||
|
super(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SatoruUmezawaTriggeredAbility copy() {
|
||||||
|
return new SatoruUmezawaTriggeredAbility(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkEventType(GameEvent event, Game game) {
|
||||||
|
return event.getType() == GameEvent.EventType.ACTIVATED_ABILITY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
|
if (!isControlledBy(event.getPlayerId())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
StackAbility stackAbility = (StackAbility) game.getStack().getStackObject(event.getTargetId());
|
||||||
|
return stackAbility.getStackAbility() instanceof NinjutsuAbility;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRule() {
|
||||||
|
return "Whenever you activate a ninjutsu ability, look at the top three cards of your library. " +
|
||||||
|
"Put one of them into your hand and the rest on the bottom of your library in any order. " +
|
||||||
|
"This ability triggers only once each turn.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SatoruUmezawaEffect extends ContinuousEffectImpl {
|
||||||
|
|
||||||
|
public SatoruUmezawaEffect() {
|
||||||
|
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
|
||||||
|
this.staticText = "each creature card in your hand has ninjutsu {2}{U}{B}";
|
||||||
|
}
|
||||||
|
|
||||||
|
public SatoruUmezawaEffect(final SatoruUmezawaEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SatoruUmezawaEffect copy() {
|
||||||
|
return new SatoruUmezawaEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Player player = game.getPlayer(source.getControllerId());
|
||||||
|
if (player == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for (Card card : player.getHand().getCards(StaticFilters.FILTER_CARD_CREATURE, game)) {
|
||||||
|
game.getState().addOtherAbility(card, new NinjutsuAbility(new ManaCostsImpl<>("{2}{U}{B}")));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Kaito Shizuki", 226, Rarity.MYTHIC, mage.cards.k.KaitoShizuki.class));
|
cards.add(new SetCardInfo("Kaito Shizuki", 226, Rarity.MYTHIC, mage.cards.k.KaitoShizuki.class));
|
||||||
cards.add(new SetCardInfo("Mountain", 299, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS));
|
cards.add(new SetCardInfo("Mountain", 299, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Plains", 293, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
cards.add(new SetCardInfo("Plains", 293, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
||||||
|
cards.add(new SetCardInfo("Satoru Umezawa", 234, Rarity.RARE, mage.cards.s.SatoruUmezawa.class));
|
||||||
cards.add(new SetCardInfo("Swamp", 297, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS));
|
cards.add(new SetCardInfo("Swamp", 297, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43505,9 +43505,10 @@ Steam Vents|Unfinity|283|R||Land - Island Mountain|||({T}: Add {U} or {R}.)$As S
|
||||||
Overgrown Tomb|Unfinity|284|R||Land - Swamp Forest|||({T}: Add {B} or {G}.)$As Overgrown Tomb enters the battlefield, you may pay 2 life. If you don't, it enters the battlefield tapped.|
|
Overgrown Tomb|Unfinity|284|R||Land - Swamp Forest|||({T}: Add {B} or {G}.)$As Overgrown Tomb enters the battlefield, you may pay 2 life. If you don't, it enters the battlefield tapped.|
|
||||||
Sacred Foundry|Unfinity|285|R||Land - Mountain Plains|||({T}: Add {R} or {W}.)$As Sacred Foundry enters the battlefield, you may pay 2 life. If you don't, it enters the battlefield tapped.|
|
Sacred Foundry|Unfinity|285|R||Land - Mountain Plains|||({T}: Add {R} or {W}.)$As Sacred Foundry enters the battlefield, you may pay 2 life. If you don't, it enters the battlefield tapped.|
|
||||||
Breeding Pool|Unfinity|286|R||Land - Forest Island|||({T}: Add {G} or {U}.)$As Breeding Pool enters the battlefield, you may pay 2 life. If you don't, it enters the battlefield tapped.|
|
Breeding Pool|Unfinity|286|R||Land - Forest Island|||({T}: Add {G} or {U}.)$As Breeding Pool enters the battlefield, you may pay 2 life. If you don't, it enters the battlefield tapped.|
|
||||||
Hidetsugu, Devouring Chaos|Kamigawa: Neon Dynasty|99|R|{3}{B}|Legendary Creature - Ogre Demon|4|4|{B}, Sacrifice a creature: Scry 2.${2}{R}, {T}, Exile the top card of your library. You may play that card this turn. When you exile a nonland card this way, Hidetsugu, Devouring Chaos deals damage equal to the exiled card's mana value to any target.|
|
Hidetsugu, Devouring Chaos|Kamigawa: Neon Dynasty|99|R|{3}{B}|Legendary Creature - Ogre Demon|4|4|{B}, Sacrifice a creature: Scry 2.${2}{R}, {T}: Exile the top card of your library. You may play that card this turn. When you exile a nonland card this way, Hidetsugu, Devouring Chaos deals damage equal to the exiled card's mana value to any target.|
|
||||||
Atsushi, the Blazing Sky|Kamigawa: Neon Dynasty|134|M|{2}{R}{R}|Legendary Creature - Dragon Spirit|4|4|Flying, trample$When Atsushi, the Blazing Sky dies, choose one —$• Exile up to two cards from your library. Until the end of your next turn, you may play those cards.$• Create three Treasure tokens.|
|
Atsushi, the Blazing Sky|Kamigawa: Neon Dynasty|134|M|{2}{R}{R}|Legendary Creature - Dragon Spirit|4|4|Flying, trample$When Atsushi, the Blazing Sky dies, choose one —$• Exile the top two cards of your library. Until the end of your next turn, you may play those cards.$• Create three Treasure tokens.|
|
||||||
Kaito Shizuki|Kamigawa: Neon Dynasty|226|M|{1}{U}{B}|Legendary Planeswalker - Kaito|3|At the beginning of your end step, if Kaito Shizuki entered the battlefield this turn, he phases out.$+1: Draw a card. Then discard a card unless you attacked this turn.$−2: Create a 1/1 blue Ninja creature token with "This creature can't be blocked."$−7: You get an emblem with "Whenever a creature you control deals combat damage to a player, search your library for a blue or black creature card, put it onto the battlefield, then shuffle."|
|
Kaito Shizuki|Kamigawa: Neon Dynasty|226|M|{1}{U}{B}|Legendary Planeswalker - Kaito|3|At the beginning of your end step, if Kaito Shizuki entered the battlefield this turn, he phases out.$+1: Draw a card. Then discard a card unless you attacked this turn.$−2: Create a 1/1 blue Ninja creature token with "This creature can't be blocked."$−7: You get an emblem with "Whenever a creature you control deals combat damage to a player, search your library for a blue or black creature card, put it onto the battlefield, then shuffle."|
|
||||||
|
Satoru Umezawa|Kamigawa: Neon Dynasty|234|R|{1}{U}{B}|Legendary Creature - Human Ninja|2|4|Whenever you activate a ninjutsu ability, look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. This ability triggers only once each turn.$Each creature card in your hand has ninjutsu {2}{U}{B}.|
|
||||||
Plains|Kamigawa: Neon Dynasty|293|C||Basic Land - Plains|||({T}: Add {W}.)|
|
Plains|Kamigawa: Neon Dynasty|293|C||Basic Land - Plains|||({T}: Add {W}.)|
|
||||||
Island|Kamigawa: Neon Dynasty|295|C||Basic Land - Island|||({T}: Add {U}.)|
|
Island|Kamigawa: Neon Dynasty|295|C||Basic Land - Island|||({T}: Add {U}.)|
|
||||||
Swamp|Kamigawa: Neon Dynasty|297|C||Basic Land - Swamp|||({T}: Add {B}.)|
|
Swamp|Kamigawa: Neon Dynasty|297|C||Basic Land - Swamp|||({T}: Add {B}.)|
|
||||||
|
|
Loading…
Reference in a new issue