[NEO] Implemented Satoru Umezawa

This commit is contained in:
Evan Kranzler 2021-12-24 17:19:08 -05:00
parent a323118c2e
commit e683c58e08
3 changed files with 127 additions and 2 deletions

View 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;
}
}

View file

@ -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("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("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));
}
}

View file

@ -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.|
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.|
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.|
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 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."|
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}.)|
Island|Kamigawa: Neon Dynasty|295|C||Basic Land - Island|||({T}: Add {U}.)|
Swamp|Kamigawa: Neon Dynasty|297|C||Basic Land - Swamp|||({T}: Add {B}.)|