SearchLibraryPutInPlayEffect: remove forceshuffle parameter, part 2

This commit is contained in:
xenohedron 2023-05-13 23:19:24 -04:00
parent 4c787423bc
commit 698fe34014
65 changed files with 69 additions and 76 deletions

View file

@ -62,7 +62,7 @@ class BeginTheInvasionEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
int xValue = source.getManaCostsToPay().getX();
return new SearchLibraryPutInPlayEffect(
new TargetCardWithDifferentNameInLibrary(0, xValue, filter), false, true
new TargetCardWithDifferentNameInLibrary(0, xValue, filter), false
).apply(game, source);
}
}

View file

@ -22,7 +22,7 @@ public final class BeneathTheSands extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}");
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
// Cycling {2}
this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));

View file

@ -35,7 +35,7 @@ public final class BitterthornNissasAnimus extends CardImpl {
// Whenever equipped creature attacks, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle.
this.addAbility(new AttacksAttachedTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND_A), true, true
new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND_A), true
), true));
// Equip {3}

View file

@ -31,7 +31,7 @@ public final class BlightedWoodland extends CardImpl {
// {3}{G}, {T}, Sacrifice Blighted Woodland: Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS), true),
new ManaCostsImpl<>("{3}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());

View file

@ -39,7 +39,7 @@ public final class BogbrewWitch extends CardImpl {
// {2}, {T}: Search your library for a card named Festering Newt or Bubbling Cauldron, put it onto the battlefield tapped, then shuffle your library.
TargetCardInLibrary target = new TargetCardInLibrary(1, 1, new FilterCard(filter));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(target, true, true),
new SearchLibraryPutInPlayEffect(target, true),
new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);

View file

@ -39,7 +39,7 @@ public final class BrokersHideout extends CardImpl {
// When Brokers Hideout enters the battlefield, sacrifice it. When you do, search your library for a basic Forest, Plains, or Island card, put it onto the battlefield tapped, then shuffle and you gain 1 life.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), false);
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(

View file

@ -33,7 +33,7 @@ public final class BurnishedHart extends CardImpl {
// {3}, Sacrifice Burnished Hart: Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS), true),
new GenericManaCost(3));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);

View file

@ -38,7 +38,7 @@ public final class CabarettiCourtyard extends CardImpl {
// When Cabaretti Courtyard enters the battlefield, sacrifice it. When you do, search your library for a basic Mountain, Forest, or Plains card, put it onto the battlefield tapped, then shuffle and you gain 1 life.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), false);
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(

View file

@ -28,7 +28,7 @@ public final class CentaurRootcaster extends CardImpl {
// Whenever Centaur Rootcaster deals combat damage to a player, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
true));
}

View file

@ -56,7 +56,7 @@ class DeepGnomeTerramancerTriggeredAbility extends TriggeredAbilityImpl {
FilterCard filter = new FilterCard("Plains card");
filter.add(SubType.PLAINS.getPredicate());
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, true, true));
addEffect(new SearchLibraryPutInPlayEffect(target, true));
}
DeepGnomeTerramancerTriggeredAbility(DeepGnomeTerramancerTriggeredAbility ability) {

View file

@ -7,7 +7,6 @@ import mage.abilities.keyword.FlashbackAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TimingRule;
import mage.filter.StaticFilters;
import mage.target.common.TargetCardInLibrary;
@ -24,7 +23,7 @@ public final class DeepReconnaissance extends CardImpl {
// Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
// Flashback {4}{G}
this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{4}{G}")));
}

View file

@ -45,7 +45,7 @@ public final class DoricNaturesWarden extends CardImpl {
// When Doric, Nature's Warden enters the battlefield, search your library for a Forest card, put it into the battlefield tapped, then shuffle.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), true, true)
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), true)
));
// Whenever Doric attacks, you may pay {1}{G}. If you do, transform her.

View file

@ -64,7 +64,7 @@ public final class DroidFactory extends CardImpl {
filter.add(Predicates.or(subtypePredicates));
filter.add(SuperType.BASIC.getPredicate());
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, true, true));
addEffect(new SearchLibraryPutInPlayEffect(target, true));
}
@Override

View file

@ -26,8 +26,8 @@ public final class FarWanderings extends CardImpl {
// Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.
// Threshold - If seven or more cards are in your graveyard, instead search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library.
Effect effect = new ConditionalOneShotEffect(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true),
new CardsInControllerGraveyardCondition(7),
"Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle.<br/><br/><i>Threshold</i> &mdash; If seven or more cards are in your graveyard, instead search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle.");
this.getSpellAbility().addEffect(effect);

View file

@ -28,7 +28,7 @@ public final class FarhavenElf extends CardImpl {
this.toughness = new MageInt(1);
// When Farhaven Elf enters the battlefield, you may search your library for a basic land card and put it onto the battlefield tapped. If you do, shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
}
private FarhavenElf(final FarhavenElf card) {

View file

@ -32,7 +32,7 @@ public final class FlagstonesOfTrokair extends CardImpl {
this.addAbility(new WhiteManaAbility());
// When Flagstones of Trokair is put into a graveyard from the battlefield, you may search your library for a Plains card and put it onto the battlefield tapped. If you do, shuffle your library.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(FILTER), true, true), true, false));
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(FILTER), true), true, false));
}
private FlagstonesOfTrokair(final FlagstonesOfTrokair card) {

View file

@ -27,7 +27,7 @@ public final class FontOfFertility extends CardImpl {
// {1}{G}, Sacrifice Font of Fertility: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, true), new ManaCostsImpl<>("{1}{G}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true), new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}

View file

@ -44,7 +44,7 @@ public final class GodoBanditWarlord extends CardImpl {
this.toughness = new MageInt(3);
// When Godo, Bandit Warlord enters the battlefield, you may search your library for an Equipment card and put it onto the battlefield. If you do, shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false), true));
// Whenever Godo attacks for the first time each turn, untap it and all Samurai you control. After this phase, there is an additional combat phase.
Ability ability = new AttacksFirstTimeTriggeredAbility(new UntapSourceEffect().setText("untap it"), false);

View file

@ -26,8 +26,8 @@ public final class GrowFromTheAshes extends CardImpl {
// Search you library for a basic land card, put it onto the battlefield, then shuffle your library. If this spell was kicked, instead search your library for two basic land cards, put them onto the battlefield, then shuffle your library.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), false),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), false),
KickedCondition.ONCE,
"Search your library for a basic land card, put it onto the battlefield, then shuffle. If this spell was kicked, instead search your library for two basic land cards, put them onto the battlefield, then shuffle."));
}

View file

@ -64,7 +64,7 @@ public final class JediEnclave extends CardImpl {
filter.add(Predicates.or(subtypePredicates));
filter.add(SuperType.BASIC.getPredicate());
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, true, true));
addEffect(new SearchLibraryPutInPlayEffect(target, true));
}
@Override

View file

@ -64,7 +64,7 @@ public final class JungleVillage extends CardImpl {
filter.add(Predicates.or(subtypePredicates));
filter.add(SuperType.BASIC.getPredicate());
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, true, true));
addEffect(new SearchLibraryPutInPlayEffect(target, true));
}
@Override

View file

@ -53,7 +53,7 @@ public final class KeeperOfTheAccord extends CardImpl {
// At the beginning of each opponent's end step, if that player controls more lands than you, you may search your library for a basic Plains card, put it onto the battlefield tapped, then shuffle your library.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfEndStepTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), TargetController.OPPONENT, true),
KeeperOfTheAccordCondition.LANDS, "At the beginning of each opponent's end step, " +
"if that player controls more lands than you, you may search your library for a basic Plains card, " +
@ -87,4 +87,4 @@ enum KeeperOfTheAccordCondition implements Condition {
return game.getBattlefield().countAll(filter, source.getControllerId(), game)
< game.getBattlefield().countAll(filter, game.getActivePlayerId(), game);
}
}
}

View file

@ -51,7 +51,7 @@ public final class KorlashHeirToBlackblade extends CardImpl {
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}")));
// Grandeur - Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.
effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filterCard), true, true);
effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filterCard), true);
effect.setText("Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle.");
this.addAbility(new GrandeurAbility(effect, "Korlash, Heir to Blackblade"));
}

View file

@ -49,7 +49,7 @@ public final class KyscuDrake extends CardImpl {
this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{G}")));
// Sacrifice Kyscu Drake and a creature named Spitting Drake: Search your library for a card named Viashivan Dragon and put that card onto the battlefield. Then shuffle your library.
this.addAbility(new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(1, 1, filter), false, true), new CompositeCost(new SacrificeSourceCost(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filterSpitting, false)), "sacrifice {this} and a creature named Spitting Drake")));
this.addAbility(new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(1, 1, filter), false), new CompositeCost(new SacrificeSourceCost(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filterSpitting, false)), "sacrifice {this} and a creature named Spitting Drake")));
}
private KyscuDrake(final KyscuDrake card) {

View file

@ -42,7 +42,7 @@ public final class LoyalWarhound extends CardImpl {
// When Loyal Warhound enters the battlefield, if an opponent controls more lands than you,
// search your library for a basic Plains card, put it onto the battlefield tapped, then shuffle.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), true, true)),
new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), true)),
new OpponentControlsMoreCondition(StaticFilters.FILTER_LANDS),
"When {this} enters the battlefield, if an opponent controls more lands than you, "
+ "search your library for a basic Plains card, put it onto the battlefield tapped, then shuffle."

View file

@ -38,7 +38,7 @@ public final class MaestrosTheater extends CardImpl {
// When Maestros Theater enters the battlefield, sacrifice it. When you do, search your library for a basic Island, Swamp, or Mountain card, put it onto the battlefield tapped, then shuffle and you gain 1 life.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), false);
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(

View file

@ -50,7 +50,7 @@ public final class MagusOfTheOrder extends CardImpl {
// {G}, {T}, Sacrifice Magus of the Order and another green creature: Search your library for a green creature card and put it onto the battlefield. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(1, filter), false, true
new TargetCardInLibrary(1, filter), false
), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new CompositeCost(

View file

@ -31,7 +31,7 @@ public final class MwonvuliAcidMoss extends CardImpl {
// Destroy target land. Search your library for a Forest card and put that card onto the battlefield tapped. Then shuffle your library.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterLandPermanent()));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterForest), true, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterForest), true));
}
private MwonvuliAcidMoss(final MwonvuliAcidMoss card) {

View file

@ -35,7 +35,7 @@ public final class NaturalOrder extends CardImpl {
// As an additional cost to cast Natural Order, sacrifice a green creature.
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,filter, true)));
// Search your library for a green creature card and put it onto the battlefield. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(1 , filterCard), false, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(1 , filterCard), false));
}
private NaturalOrder(final NaturalOrder card) {

View file

@ -28,7 +28,7 @@ public final class NaturesLore extends CardImpl {
// Search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false));
}
private NaturesLore(final NaturesLore card) {

View file

@ -23,7 +23,7 @@ public final class NissasExpedition extends CardImpl {
// Convoke
this.addAbility(new ConvokeAbility());
// Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS), true));
}
private NissasExpedition(final NissasExpedition card) {

View file

@ -38,7 +38,7 @@ public final class ObscuraStorefront extends CardImpl {
// When Obscura Storefront enters the battlefield, sacrifice it. When you do, search your library for a basic Plains, Island, or Swamp card, put it onto the battlefield tapped, then shuffle and you gain 1 life.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), false);
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(

View file

@ -49,7 +49,7 @@ public final class OrdealOfNylea extends CardImpl {
this.addAbility(ability);
// When you sacrifice Ordeal of Nylea, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
ability = new SacrificeSourceTriggeredAbility(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS),true, true),false);
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS),true),false);
this.addAbility(ability);
}

View file

@ -30,8 +30,8 @@ public final class PrimalGrowth extends CardImpl {
// Search your library for a basic land card, put that card onto the battlefield, then shuffle your library.
// If Primal Growth was kicked, instead search your library for up to two basic land cards, put them onto the battlefield, then shuffle your library.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), false),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), false),
KickedCondition.ONCE,
"Search your library for a basic land card, put that card onto the battlefield, then shuffle. If this spell was kicked, instead search your library for up to two basic land cards, put them onto the battlefield, then shuffle"));
}

View file

@ -26,7 +26,7 @@ public final class QuirionTrailblazer extends CardImpl {
this.toughness = new MageInt(2);
// When Quirion Trailblazer enters the battlefield, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
}
private QuirionTrailblazer(final QuirionTrailblazer card) {

View file

@ -20,7 +20,7 @@ public final class ReshapeTheEarth extends CardImpl {
// Search your library for up to ten land cards, put them onto the battlefield tapped, then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(
0, 10, StaticFilters.FILTER_CARD_LANDS
), true, true));
), true));
}
private ReshapeTheEarth(final ReshapeTheEarth card) {

View file

@ -38,7 +38,7 @@ public final class RiveteersOverlook extends CardImpl {
// When Riveteers Overlook enters the battlefield, sacrifice it. When you do, search your library for a basic Swamp, Mountain, or Forest card, put it onto the battlefield tapped, then shuffle and you gain 1 life.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), false);
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(

View file

@ -51,7 +51,7 @@ public final class SamutTheTested extends CardImpl {
this.addAbility(ability);
// -7: Search your library for up to two creature and/or planeswalker cards, put them onto the battlefield, then shuffle your library.
effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filter), false, true);
effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filter), false);
ability = new LoyaltyAbility(effect, -7);
this.addAbility(ability);
}

View file

@ -23,7 +23,7 @@ public final class ScoutThePerimeter extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
// Search your library for a land card, put it onto the battlefield tapped, then suffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterLandCard()), true, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterLandCard()), true));
// Put a bounty counter on up to one target creature an opponent controls.
Effect effect = new AddCountersTargetEffect(CounterType.BOUNTY.createInstance());

View file

@ -32,7 +32,7 @@ public final class SeedguideAsh extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// When Seedguide Ash dies, you may search your library for up to three Forest cards and put them onto the battlefield tapped. If you do, shuffle your library.
this.addAbility(new DiesSourceTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, filter), true, true), true));
this.addAbility(new DiesSourceTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, filter), true), true));
}
private SeedguideAsh(final SeedguideAsh card) {

View file

@ -45,7 +45,7 @@ public final class ShadowbornApostle extends CardImpl {
// A deck can have any number of cards named Shadowborn Apostle.
this.getSpellAbility().addEffect(new InfoEffect("A deck can have any number of cards named Shadowborn Apostle."));
// {B}, Sacrifice six creatures named Shadowborn Apostle: Search your library for a Demon creature and put it onto the battlefield. Then shuffle your library.
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true);
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{B}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(6,6,filterApostle, false)));
this.addAbility(ability);

View file

@ -44,7 +44,7 @@ public final class ShefetMonitor extends CardImpl {
// When you cycle Shefet Monitor, you may search your library for a basic land card or a Desert card, put it onto the battlefield, then shuffle your library.
this.addAbility(new CycleTriggeredAbility(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false),
true));
}

View file

@ -17,7 +17,6 @@ import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.NamePredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.stack.Spell;
import mage.target.common.TargetCardInLibrary;
import mage.watchers.Watcher;
@ -48,7 +47,7 @@ public final class SiftThroughSands extends CardImpl {
this.getSpellAbility().addEffect(effect);
// If you've cast a spell named Peer Through Depths and a spell named Reach Through Mists this turn, you may search your library for a card named The Unspeakable, put it onto the battlefield, then shuffle your library.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true), new SiftThroughSandsCondition(), rule));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false), new SiftThroughSandsCondition(), rule));
this.getSpellAbility().addWatcher(new SiftThroughSandsWatcher());
}

View file

@ -36,7 +36,7 @@ public final class SilkwingScout extends CardImpl {
// {G}, Sacrifice Silkwing Scout: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
new ManaCostsImpl<>("{G}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);

View file

@ -30,7 +30,7 @@ public final class SilvergladeElemental extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, false), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false), true));
}
private SilvergladeElemental(final SilvergladeElemental card) {

View file

@ -33,7 +33,7 @@ public final class SilvergladePathfinder extends CardImpl {
// {1}{G}, {tap}, Discard a card: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());

View file

@ -64,7 +64,7 @@ public final class SithRuins extends CardImpl {
filter.add(Predicates.or(subtypePredicates));
filter.add(SuperType.BASIC.getPredicate());
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, true, true));
addEffect(new SearchLibraryPutInPlayEffect(target, true));
}
@Override

View file

@ -50,7 +50,7 @@ public final class SpaceMarineScout extends CardImpl {
// Concealed Position -- When Space Marine Scout enters the battlefield, if an opponent controls more lands than you, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), true), condition, "When {this} enters the battlefield, if an opponent controls more lands " +
"than you, you may search your library for a basic Plains card, put it onto the battlefield tapped, then shuffle."
).withFlavorWord("Concealed Position"));

View file

@ -73,6 +73,6 @@ class SporocystEffect extends OneShotEffect {
int xValue = ManacostVariableValue.ETB.calculate(game, source, this);
return new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(
0, xValue, StaticFilters.FILTER_CARD_BASIC_LANDS
), true, true).apply(game, source);
), true).apply(game, source);
}
}

View file

@ -113,9 +113,8 @@ class SylvanPrimordialEffect extends OneShotEffect {
}
}
if (destroyedCreatures > 0) {
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(destroyedCreatures, filterForest), true, true).apply(game, source);
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(destroyedCreatures, filterForest), true).apply(game, source);
}
return result;
}
}

View file

@ -71,7 +71,7 @@ class TajNarSwordsmithEffect extends OneShotEffect {
FilterCard filter = new FilterCard("Equipment card with mana value {" + payCount + "} or less");
filter.add(SubType.EQUIPMENT.getPredicate());
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, payCount + 1));
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, filter), false, true).apply(game, source);
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, filter), false).apply(game, source);
return true;
}
return false;

View file

@ -29,7 +29,7 @@ public final class TerminalMoraine extends CardImpl {
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {2}, {tap}, Sacrifice Terminal Moraine: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), new ManaCostsImpl<>("{2}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);

View file

@ -37,7 +37,7 @@ public final class ThunderherdMigration extends CardImpl {
));
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
}
private ThunderherdMigration(final ThunderherdMigration card) {

View file

@ -44,7 +44,7 @@ public final class UlvenwaldHydra extends CardImpl {
// When Ulvenwald Hydra enters the battlefield, you may search your library for a land card, put it onto the battlefield tapped, then shuffle your library.
TargetCardInLibrary target = new TargetCardInLibrary(new FilterLandCard());
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(target, true, true), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(target, true), true));
}
private UlvenwaldHydra(final UlvenwaldHydra card) {

View file

@ -64,7 +64,7 @@ public final class UnderworldSlums extends CardImpl {
filter.add(Predicates.or(subtypePredicates));
filter.add(SuperType.BASIC.getPredicate());
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, true, true));
addEffect(new SearchLibraryPutInPlayEffect(target, true));
}
@Override

View file

@ -29,7 +29,7 @@ public final class VerdantCrescendo extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}");
// Search your library for a basic land card and put it onto the battlefield tapped.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, false));
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
// Search your library and graveyard for a card named Nissa, Nature's Artisan, reveal it, and put it into your hand. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryGraveyardPutInHandEffect(filter, true));

View file

@ -31,7 +31,7 @@ public final class WarpedLandscape extends CardImpl {
// {2}, {T}, Sacrifice Warped Landscape: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
new GenericManaCost(2));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());

View file

@ -27,7 +27,7 @@ public final class WayfarersBauble extends CardImpl {
// {2}, {tap}, Sacrifice Wayfarer's Bauble: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND),true, true), new GenericManaCost(2));
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND),true), new GenericManaCost(2));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);

View file

@ -35,7 +35,7 @@ public final class WhisperSquad extends CardImpl {
// {1}{B}: Search your library for a card named Whisper Squad, put it onto the battlefield tapped, then shuffle your library.
this.addAbility(new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), new ManaCostsImpl<>("{1}{B}")));
}

View file

@ -27,7 +27,7 @@ public final class WildWanderer extends CardImpl {
this.toughness = new MageInt(2);
// When Wild Wanderer enters the battlefield, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
}
private WildWanderer(final WildWanderer card) {

View file

@ -33,7 +33,7 @@ public final class WoodElves extends CardImpl {
this.toughness = new MageInt(1);
// When Wood Elves enters the battlefield, search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false)));
}
private WoodElves(final WoodElves card) {

View file

@ -32,7 +32,7 @@ public class FetchLandActivatedAbility extends ActivatedAbilityImpl {
FilterCard filter = new FilterCard(subType1.getDescription() + " or " + subType2.getDescription() + " card");
filter.add(Predicates.or(subType1.getPredicate(), subType2.getPredicate()));
TargetCardInLibrary target = new TargetCardInLibrary(filter);
addEffect(new SearchLibraryPutInPlayEffect(target, false, true));
addEffect(new SearchLibraryPutInPlayEffect(target, false));
}
private FetchLandActivatedAbility(FetchLandActivatedAbility ability) {

View file

@ -21,14 +21,10 @@ public class SearchLibraryPutInPlayEffect extends SearchEffect {
protected boolean optional;
public SearchLibraryPutInPlayEffect(TargetCardInLibrary target) {
this(target, false, true);
this(target, false);
}
public SearchLibraryPutInPlayEffect(TargetCardInLibrary target, boolean tapped) {
this(target, tapped, true);
}
public SearchLibraryPutInPlayEffect(TargetCardInLibrary target, boolean tapped, boolean forceShuffle) {
this(target, tapped, true, false);
}

View file

@ -22,7 +22,7 @@ public final class GarrukCallerOfBeastsEmblem extends Emblem {
*/
public GarrukCallerOfBeastsEmblem() {
super("Emblem Garruk");
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterCreatureCard("creature card")), false, true);
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterCreatureCard("creature card")), false);
Ability ability = new SpellCastControllerTriggeredAbility(Zone.COMMAND, effect, StaticFilters.FILTER_SPELL_A_CREATURE, true, false);
this.getAbilities().add(ability);
}

View file

@ -13,7 +13,7 @@ public class GarrukUnleashedEmblem extends Emblem {
// At the beginning of your end step, you may search your library for a creature card, put it onto the battlefield, then shuffle your library.
public GarrukUnleashedEmblem() {
super("Emblem Garruk");
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_CREATURE), false, true)
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_CREATURE), false)
.setText("search your library for a creature card, put it onto the battlefield, then shuffle");
this.getAbilities().add(new BeginningOfYourEndStepTriggeredAbility(Zone.COMMAND, effect, true));
}