public HauntedCrossroads(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); // {B}: Put target creature card from your graveyard on top of your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{B}")); ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); this.addAbility(ability); }
public NulltreadGargantuan (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{U}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(5); this.toughness = new MageInt(6); // When Nulltread Gargantuan enters the battlefield, put a creature you control on top of its owner's library. Ability ability = new EntersBattlefieldTriggeredAbility(new PutOnLibraryTargetEffect(true), false); Target target = new TargetControlledCreaturePermanent(); target.setNotTarget(true); ability.addTarget(target); this.addAbility(ability); }
public TimeEbb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{U}"); this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); }
public PlowUnder(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{G}{G}"); // Put two target lands on top of their owners' libraries. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetLandPermanent(2,2, StaticFilters.FILTER_LANDS, false)); }
public Salvage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}"); // Put target card from your graveyard on top of your library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard()); }
public TemporalEddy(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{U}{U}"); // Put target creature or land on top of its owner's library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetPermanent(filter)); }
public Excommunicate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{W}"); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); }
public NaturalObsolescence(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); // Put target artifact on the bottom of its owner's library. this.getSpellAbility().addTarget(new TargetArtifactPermanent()); this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false)); }
public HuaTuoHonoredPhysician(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.HUMAN); this.power = new MageInt(1); this.toughness = new MageInt(2); // {tap}: Put target creature card from your graveyard on top of your library. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); this.addAbility(ability); }
public Junktroller(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}"); this.subtype.add(SubType.GOLEM); this.power = new MageInt(0); this.toughness = new MageInt(6); // Defender this.addAbility(DefenderAbility.getInstance()); // {tap}: Put target card from a graveyard on the bottom of its owner's library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(false), new TapSourceCost()); ability.addTarget(new TargetCardInGraveyard()); this.addAbility(ability); }
public TelJiladStylus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); // {T}: Put target permanent you own on the bottom of your library. Effect effect = new PutOnLibraryTargetEffect(false,"put target permanent you own on the bottom of your library"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); }
public ArcboundReclaimer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}"); this.subtype.add(SubType.GOLEM); this.power = new MageInt(0); this.toughness = new MageInt(0); // Remove a +1/+1 counter from Arcbound Reclaimer: Put target artifact card from your graveyard on top of your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true),new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"))); this.addAbility(ability); // Modular 2 this.addAbility(new ModularAbility(this, 2)); }
public DovinsDismissal(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{W}{U}"); // Put up to one target tapped creature on top of its owner's library. You may search your library and/or graveyard for a card named Dovin, Architect of Law, reveal it, and put it into your hand. If you search your library this way, shuffle it. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addEffect( new SearchLibraryGraveyardPutInHandEffect(filter, false, true) ); this.getSpellAbility().addTarget(new TargetPermanent(0, 1, filter2, false)); }
public GoneMissing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{U}"); // Put target permanent on top of its owner's library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetPermanent()); // Investigate. this.getSpellAbility().addEffect(new InvestigateEffect()); }
public DukharaScavenger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}"); this.subtype.add(SubType.CROCODILE); this.power = new MageInt(4); this.toughness = new MageInt(6); // When Dukhara Scavenger enters the battlefield, you may put target artifact or creature card from your graveyard on top of your library. Effect effect = new PutOnLibraryTargetEffect(true); effect.setText("you may put target artifact or creature card from your graveyard on top of your library"); Ability ability = new EntersBattlefieldTriggeredAbility(effect, true); ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_ARTIFACT_OR_CREATURE)); this.addAbility(ability); }
public Condemn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}"); // Put target attacking creature on the bottom of its owner's library. this.getSpellAbility().addTarget(new TargetAttackingCreature()); this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false)); // Its controller gains life equal to its toughness. this.getSpellAbility().addEffect(new CondemnEffect()); }
public BanishingStroke(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{5}{W}"); // Put target artifact, creature, or enchantment on the bottom of its owner's library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false)); this.getSpellAbility().addTarget(new TargetPermanent(filter)); // Miracle {W} this.addAbility(new MiracleAbility(this, new ManaCostsImpl("{W}"))); }
public SpinIntoMyth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{U}"); // Put target creature on top of its owner's library, then fateseal 2. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); Effect effect = new FatesealEffect(2); effect.setText(", then fateseal 2. <i>(To fateseal 2, look at the top two cards of an opponent's library, then put any number of them on the bottom of that player's library and the rest on top in any order.)</i>"); this.getSpellAbility().addEffect(effect); }
public FootbottomFeast(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{B}"); // Put any number of target creature cards from your graveyard on top of your library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, Integer.MAX_VALUE, new FilterCreatureCard("creature cards from your graveyard"))); // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); }
public BoneHarvest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{B}"); // Put any number of target creature cards from your graveyard on top of your library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, Integer.MAX_VALUE, new FilterCreatureCard("creature cards from your graveyard"))); // Draw a card at the beginning of the next turn's upkeep. this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); }