@Override public NinjutsuAbility copy() { return new NinjutsuAbility(this); }
public NinjutsuAbility(ManaCost manaCost, boolean commander) { super(commander ? Zone.ALL : Zone.HAND, new NinjutsuEffect(), manaCost); this.addCost(new RevealNinjutsuCardCost(commander)); this.addCost(new ReturnAttackerToHandTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true))); this.commander = commander; }
@Override public String getRule() { return (commander ? "Commander n" : "N") + "injutsu " + getManaCostsToPay().getText() + " <i>(" + getManaCostsToPay().getText() + " Return an unblocked attacker you control to hand: " + "Put this card onto the battlefield from your hand" + (commander ? " or the command zone " : " ") + "tapped and attacking.)</i>"; } }
public MistbladeShinobi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.NINJA); this.power = new MageInt(1); this.toughness = new MageInt(1); // Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{U}"))); // Whenever Mistblade Shinobi deals combat damage to a player, you may return target creature that player controls to its owner's hand. this.addAbility(new MistbladeShinobiTriggeredAbility()); }
public ThroatSlitter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); this.subtype.add(SubType.RAT); this.subtype.add(SubType.NINJA); this.power = new MageInt(2); this.toughness = new MageInt(2); // Ninjutsu {2}{B} ({2}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{2}{B}"))); // Whenever Throat Slitter deals combat damage to a player, destroy target nonblack creature that player controls. this.addAbility(new ThroatSlitterTriggeredAbility()); }
public NinjaOfTheDeepHours(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.NINJA); this.power = new MageInt(2); this.toughness = new MageInt(2); // Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{1}{U}"))); // Whenever Ninja of the Deep Hours deals combat damage to a player, you may draw a card. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DrawCardSourceControllerEffect(1), true, false)); }
public SilentBladeOni(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}{B}{B}"); this.subtype.add(SubType.DEMON); this.subtype.add(SubType.NINJA); this.power = new MageInt(6); this.toughness = new MageInt(5); // Ninjutsu {4}{U}{B} this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{4}{U}{B}"))); // Whenever Silent-Blade Oni deals combat damage to a player, look at that player's hand. You may cast a nonland card in it without paying that card's mana cost. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new SilentBladeOniEffect(), false, true)); }
public OkibaGangShinobi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); this.subtype.add(SubType.RAT); this.subtype.add(SubType.NINJA); this.power = new MageInt(3); this.toughness = new MageInt(2); // Ninjutsu {3}{B} ({3}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{3}{B}"))); // Whenever Okiba-Gang Shinobi deals combat damage to a player, that player discards two cards. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DiscardTargetEffect(2), false, true)); }
public Skullsnatcher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}"); this.subtype.add(SubType.RAT); this.subtype.add(SubType.NINJA); this.power = new MageInt(2); this.toughness = new MageInt(1); // Ninjutsu {B} ({B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{B"))); // Whenever Skullsnatcher deals combat damage to a player, exile up to two target cards from that player's graveyard. Effect effect = new ExileTargetEffect(null, "", Zone.GRAVEYARD); effect.setText("exile up to two target cards from that player's graveyard"); this.addAbility(new SkullsnatcherTriggeredAbility(effect)); }
public YurikoTheTigersShadow(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(1); this.toughness = new MageInt(3); // Commander ninjutsu {U}{B} this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{U}{B}"), true)); // Whenever a Ninja you control deals combat damage to a player, reveal the top card of your library and put that card into your hand. Each opponent loses life equal to that card's converted mana cost. this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility( new YurikoTheTigersShadowEffect(), filter, false, SetTargetPointer.NONE, true )); }
public SakashimasStudent(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.NINJA); this.power = new MageInt(0); this.toughness = new MageInt(0); // Ninjutsu {1}{U} this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{1}{U}"))); // You may have Sakashima's Student enter the battlefield as a copy of any creature on the battlefield, except it's still a Ninja in addition to its other creature types. Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new AddSubtypeApplier(SubType.NINJA)); effect.setText("as a copy of any creature on the battlefield, except it's a Ninja in addition to its other creature types"); this.addAbility(new EntersBattlefieldAbility(effect, true)); }
public InkEyesServantOfOni(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); this.subtype.add(SubType.RAT); this.subtype.add(SubType.NINJA); addSuperType(SuperType.LEGENDARY); this.power = new MageInt(5); this.toughness = new MageInt(4); // Ninjutsu {3}{B}{B} ({3}{B}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{3}{B}{B}"))); // Whenever Ink-Eyes, Servant of Oni deals combat damage to a player, you may put target creature card from that player's graveyard onto the battlefield under your control. this.addAbility(new InkEyesServantOfOniTriggeredAbility()); // {1}{B}: Regenerate Ink-Eyes. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}"))); }
public WalkerOfSecretWays(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.NINJA); this.power = new MageInt(1); this.toughness = new MageInt(2); // Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{1}{U}"))); // Whenever Walker of Secret Ways deals combat damage to a player, look at that player's hand. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new WalkerOfSecretWaysEffect(), false, true)); // {1}{U}: Return target Ninja you control to its owner's hand. Activate this ability only during your turn. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{1}{U}"), MyTurnCondition.instance); ability.addTarget(new TargetControlledCreaturePermanent(1,1, filterCreature, false)); this.addAbility(ability); }
public HigureTheStillWind(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.NINJA); addSuperType(SuperType.LEGENDARY); this.power = new MageInt(3); this.toughness = new MageInt(4); // Ninjutsu {2}{U}{U} ({2}{U}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) this.addAbility(new NinjutsuAbility(new ManaCostsImpl("{2}{U}{U}"))); // Whenever Higure, the Still Wind deals combat damage to a player, you may search your library for a Ninja card, reveal it, and put it into your hand. If you do, shuffle your library. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, false), true)); // {2}: Target Ninja creature can't be blocked this turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new GenericManaCost(2)); ability.addTarget(new TargetCreaturePermanent(filterCreature)); this.addAbility(ability); }