@Override public SearchLibraryPutOnLibraryEffect copy() { return new SearchLibraryPutOnLibraryEffect(this); }
public SearchLibraryPutOnLibraryEffect(TargetCardInLibrary target, boolean reveal, boolean forceShuffle) { super(target, Outcome.DrawCard); this.reveal = reveal; this.forceShuffle = forceShuffle; setText(); }
public BoggartHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.GOBLIN, SubType.SHAMAN); this.power = new MageInt(2); this.toughness = new MageInt(1); // When Boggart Harbinger enters the battlefield, you may search your library for a Goblin card, reveal it, // then shuffle your library and put that card on top of it. TargetCardInLibrary target = new TargetCardInLibrary(filter); this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true))); }
public SearchLibraryPutOnLibraryEffect(TargetCardInLibrary target) { this(target, false, true); setText(); }
public LoamLarva(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); this.subtype.add(SubType.INSECT); this.power = new MageInt(1); this.toughness = new MageInt(3); // When Loam Larva enters the battlefield, you may search your library for a basic land card, reveal it, then shuffle your library and put that card on top of it. TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND); this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true), true)); }
public FlamekinHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); this.subtype.add(SubType.ELEMENTAL); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(1); this.toughness = new MageInt(1); // When Flamekin Harbinger enters the battlefield, you may search your library for an Elemental card, // reveal it, then shuffle your library and put that card on top of it. TargetCardInLibrary target = new TargetCardInLibrary(filter); this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true), true)); }
public PersonalTutor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{U}"); // Search your library for a sorcery card and reveal that card. Shuffle your library, then put the card on top of it. this.getSpellAbility().addEffect(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true)); }
public EnlightenedTutor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}"); // Search your library for an artifact or enchantment card and reveal that card. Shuffle your library, then put the card on top of it. this.getSpellAbility().addEffect(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true)); }
public MysticalTutor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); // Search your library for an instant or sorcery card and reveal that card. Shuffle your library, then put the card on top of it. this.getSpellAbility().addEffect(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true)); }
public TreefolkHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); this.subtype.add(SubType.TREEFOLK); this.subtype.add(SubType.DRUID); this.power = new MageInt(0); this.toughness = new MageInt(3); // When Treefolk Harbinger enters the battlefield, you may search your library for a Treefolk or Forest card, reveal it, then shuffle your library and put that card on top of it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true), true)); }
public KithkinHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); this.subtype.add(SubType.KITHKIN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(1); this.toughness = new MageInt(3); // When Kithkin Harbinger enters the battlefield, you may search your library for a Kithkin card, reveal it, then shuffle your library and put that card on top of it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true), true)); }
public GiantHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); this.subtype.add(SubType.GIANT); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(3); this.toughness = new MageInt(4); // When Giant Harbinger enters the battlefield, you may search your library for a Giant card, reveal it, then shuffle your library and put that card on top of it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true), true)); }
public MwonvuliBeastTracker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SCOUT); this.power = new MageInt(2); this.toughness = new MageInt(1); // When Mwonvuli Beast Tracker enters the battlefield, search your library for a creature card with deathtouch, hexproof, reach, or trample and reveal it. Shuffle your library and put that card on top of it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true))); }
public MerrowHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); this.subtype.add(SubType.MERFOLK); this.subtype.add(SubType.WIZARD); this.power = new MageInt(2); this.toughness = new MageInt(3); // Islandwalk this.addAbility(new IslandwalkAbility()); // When Merrow Harbinger enters the battlefield, you may search your library for a Merfolk card, reveal it, then shuffle your library and put that card on top of it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true), true)); }
public CruelTutor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}"); // Search your library for a card, then shuffle your library and put that card on top of it. You lose 2 life. TargetCardInLibrary target = new TargetCardInLibrary(); this.getSpellAbility().addEffect(new SearchLibraryPutOnLibraryEffect(target, false, true)); this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2)); }
public ConduitOfRuin(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}"); this.subtype.add(SubType.ELDRAZI); this.power = new MageInt(5); this.toughness = new MageInt(5); // When you cast Conduit of Ruin, you may search your library for a colorless creature card with converted mana cost 7 or greater, then shuffle your library and put that card on top of it. TargetCardInLibrary target = new TargetCardInLibrary(filter); this.addAbility(new CastSourceTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true), true)); // The first creature spell you cast each turn costs {2} less to cast. Effect effect = new SpellsCostReductionControllerEffect(filterCost, 2); effect.setText("The first creature spell you cast each turn costs {2} less to cast."); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect), new ConduitOfRuinWatcher()); }
public ElvishHarbinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); this.subtype.add(SubType.ELF); this.subtype.add(SubType.DRUID); this.power = new MageInt(1); this.toughness = new MageInt(2); // When Elvish Harbinger enters the battlefield, you may search your library for an Elf card, reveal it, then shuffle your library and put that card on top of it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(filter), true, true), true)); // {tap}: Add one mana of any color. this.addAbility(new AnyColorManaAbility(new TapSourceCost())); }
public ImperialSeal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}"); // Search your library for a card, then shuffle your library and put that card on top of it. You lose 2 life. this.getSpellAbility().addEffect(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary())); this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2)); }
public VampiricTutor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}"); // Search your library for a card, then shuffle your library and put that card on top of it. You lose 2 life. this.getSpellAbility().addEffect(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(), false, true)); this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2)); }
public BringerOfTheBlackDawn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{7}{B}{B}"); this.subtype.add(SubType.BRINGER); this.power = new MageInt(5); this.toughness = new MageInt(5); // You may pay {W}{U}{B}{R}{G} rather than pay Bringer of the Black Dawn's mana cost. this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{W}{U}{B}{R}{G}"))); // Trample this.addAbility(TrampleAbility.getInstance()); // At the beginning of your upkeep, you may pay 2 life. If you do, search your library for a card, then shuffle your library and put that card on top of it. Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DoIfCostPaid(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary()), new PayLifeCost(2)), TargetController.YOU, false); this.addAbility(ability); }