mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
Fixed some errors from b28bf51
, did some refactoring
This commit is contained in:
parent
ae5bccebfa
commit
2f0f71d3e9
130 changed files with 159 additions and 148 deletions
|
@ -62,7 +62,7 @@ public class AinokGuide extends CardImpl {
|
||||||
|
|
||||||
// * Search your library for a basic land card, reveal it, then shuffle your library and put that card on top of it.
|
// * Search your library for a basic land card, reveal it, then shuffle your library and put that card on top of it.
|
||||||
Mode mode = new Mode();
|
Mode mode = new Mode();
|
||||||
mode.getEffects().add(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true));
|
mode.getEffects().add(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
|
||||||
ability.addMode(mode);
|
ability.addMode(mode);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class ArmillarySphere extends CardImpl {
|
||||||
|
|
||||||
// {2}, {tap}, Sacrifice Armillary Sphere: Search your library for up to two basic land cards, reveal them, and put them into your hand. Then shuffle your library.
|
// {2}, {tap}, Sacrifice Armillary Sphere: Search your library for up to two basic land cards, reveal them, and put them into your hand. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new GenericManaCost(2));
|
new GenericManaCost(2));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class AttuneWithAether extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}");
|
||||||
|
|
||||||
// Search you library for a basic land card, reveal it, put it into your hand, then shuffle your library. You get {E}{E}.
|
// Search you library for a basic land card, reveal it, put it into your hand, then shuffle your library. You get {E}{E}.
|
||||||
Effect effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true);
|
Effect effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true);
|
||||||
effect.setText("Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library");
|
effect.setText("Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library");
|
||||||
this.getSpellAbility().addEffect(effect);
|
this.getSpellAbility().addEffect(effect);
|
||||||
this.getSpellAbility().addEffect(new GetEnergyCountersControllerEffect(2));
|
this.getSpellAbility().addEffect(new GetEnergyCountersControllerEffect(2));
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class BeneathTheSands extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}");
|
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.
|
// 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_BASIC_LAND_CARD), true, true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
|
||||||
|
|
||||||
// Cycling {2}
|
// Cycling {2}
|
||||||
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
|
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
|
||||||
|
|
|
@ -57,7 +57,7 @@ public 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.
|
// {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,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new ManaCostsImpl<>("{3}{G}"));
|
new ManaCostsImpl<>("{3}{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -135,7 +135,7 @@ class BorderlandExplorerEffect extends OneShotEffect {
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
Cards cardsPlayer = cardsToDiscard.get(playerId);
|
Cards cardsPlayer = cardsToDiscard.get(playerId);
|
||||||
if (cardsPlayer != null && !cardsPlayer.isEmpty()) {
|
if (cardsPlayer != null && !cardsPlayer.isEmpty()) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
Cards cards = new CardsImpl(target.getTargets());
|
Cards cards = new CardsImpl(target.getTargets());
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class BorderlandRanger extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Borderland Ranger enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library.
|
// When Borderland Ranger enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BorderlandRanger(final BorderlandRanger card) {
|
public BorderlandRanger(final BorderlandRanger card) {
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class Bossk extends CardImpl {
|
||||||
this.addAbility(new BosskTriggeredAbility());
|
this.addAbility(new BosskTriggeredAbility());
|
||||||
|
|
||||||
// <i>Bounty</i> — Whenever a creature an opponent controls with a bounty counter on it dies, you may search your library for a basic land card, reveal it, and put it in to your hand. If you do, shuffle your library.
|
// <i>Bounty</i> — Whenever a creature an opponent controls with a bounty counter on it dies, you may search your library for a basic land card, reveal it, and put it in to your hand. If you do, shuffle your library.
|
||||||
this.addAbility(new BountyAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new BountyAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bossk(final Bossk card) {
|
public Bossk(final Bossk card) {
|
||||||
|
|
|
@ -95,7 +95,7 @@ class BoundlessRealmsEffect extends OneShotEffect {
|
||||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
filter.add(new ControllerPredicate(TargetController.YOU));
|
||||||
|
|
||||||
int amount = new PermanentsOnBattlefieldCount(filter).calculate(game, source, this);
|
int amount = new PermanentsOnBattlefieldCount(filter).calculate(game, source, this);
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, amount, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, amount, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
controller.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
controller.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class BraidwoodSextant extends CardImpl {
|
||||||
|
|
||||||
// {2}, {tap}, Sacrifice Braidwood Sextant: Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
// {2}, {tap}, Sacrifice Braidwood Sextant: Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new ManaCostsImpl("{2}"));
|
new ManaCostsImpl("{2}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class BudokaGardener extends CardImpl {
|
||||||
this.flipCardName = "Dokai, Weaver of Life";
|
this.flipCardName = "Dokai, Weaver of Life";
|
||||||
|
|
||||||
// {T}: You may put a land card from your hand onto the battlefield. If you control ten or more lands, flip Budoka Gardener.
|
// {T}: You may put a land card from your hand onto the battlefield. If you control ten or more lands, flip Budoka Gardener.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_BASIC_LAND_CARD_A), new TapSourceCost());
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_LAND_A), new TapSourceCost());
|
||||||
ability.addEffect(new BudokaGardenerEffect());
|
ability.addEffect(new BudokaGardenerEffect());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ public 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.
|
// {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(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new GenericManaCost(3));
|
new GenericManaCost(3));
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -88,7 +88,7 @@ class CaravanVigilEffect extends OneShotEffect {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
MageObject sourceObject = source.getSourceObject(game);
|
MageObject sourceObject = source.getSourceObject(game);
|
||||||
if (sourceObject != null && controller != null) {
|
if (sourceObject != null && controller != null) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
|
|
|
@ -54,7 +54,7 @@ public 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.
|
// 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(
|
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
true));
|
true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class CivicWayfinder extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Civic Wayfinder enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library.
|
// When Civic Wayfinder enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CivicWayfinder(final CivicWayfinder card) {
|
public CivicWayfinder(final CivicWayfinder card) {
|
||||||
|
|
|
@ -101,7 +101,7 @@ class CollectiveVoyageEffect extends OneShotEffect {
|
||||||
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
||||||
Player player = game.getPlayer(playerId);
|
Player player = game.getPlayer(playerId);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, xSum, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, xSum, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, true, null);
|
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, true, null);
|
||||||
player.shuffleLibrary(source, game);
|
player.shuffleLibrary(source, game);
|
||||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterArtifactCard;
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -54,7 +54,11 @@ public class CopperGnomes extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {4}, Sacrifice Copper Gnomes: You may put an artifact card from your hand onto the battlefield.
|
// {4}, Sacrifice Copper Gnomes: You may put an artifact card from your hand onto the battlefield.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(new FilterArtifactCard()), new ManaCostsImpl("{4}"));
|
Ability ability = new SimpleActivatedAbility(
|
||||||
|
Zone.BATTLEFIELD,
|
||||||
|
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_ARTIFACT_AN),
|
||||||
|
new ManaCostsImpl("{4}")
|
||||||
|
);
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,7 @@ class CultivateEffect extends OneShotEffect {
|
||||||
if (controller == null || sourceObject == null) {
|
if (controller == null || sourceObject == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
Cards revealed = new CardsImpl(target.getTargets());
|
Cards revealed = new CardsImpl(target.getTargets());
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class DawntreaderElk extends CardImpl {
|
||||||
|
|
||||||
// {G}, Sacrifice Dawntreader Elk: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// {G}, Sacrifice Dawntreader Elk: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new ColoredManaCost(ColoredManaSymbol.G));
|
new ColoredManaCost(ColoredManaSymbol.G));
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class DeepReconnaissance extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
// Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
|
// 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_BASIC_LAND_CARD), true, true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
|
||||||
// Flashback {4}{G}
|
// Flashback {4}{G}
|
||||||
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{4}{G}"), TimingRule.SORCERY));
|
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{4}{G}"), TimingRule.SORCERY));
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@ class DermoplasmEffect extends OneShotEffect {
|
||||||
Permanent thisCreature = game.getPermanent(source.getId());
|
Permanent thisCreature = game.getPermanent(source.getId());
|
||||||
FilterCreatureCard filter = new FilterCreatureCard("a creature card with a morph ability");
|
FilterCreatureCard filter = new FilterCreatureCard("a creature card with a morph ability");
|
||||||
filter.add(new AbilityPredicate(MorphAbility.class));
|
filter.add(new AbilityPredicate(MorphAbility.class));
|
||||||
Effect effect = new PutCardFromHandOntoBattlefieldEffect(new FilterCreatureCard(filter));
|
Effect effect = new PutCardFromHandOntoBattlefieldEffect(filter);
|
||||||
if (effect.apply(game, source)) {
|
if (effect.apply(game, source)) {
|
||||||
if (thisCreature != null) {
|
if (thisCreature != null) {
|
||||||
effect = new ReturnToHandTargetEffect();
|
effect = new ReturnToHandTargetEffect();
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class DiligentFarmhand extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {1}{G}, Sacrifice Diligent Farmhand: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
|
// {1}{G}, Sacrifice Diligent Farmhand: 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_BASIC_LAND_CARD), true), new ManaCostsImpl("{1}{G}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), new ManaCostsImpl("{1}{G}"));
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
// If Diligent Farmhand is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst.
|
// If Diligent Farmhand is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst.
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class DreamscapeArtist extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {2}{U}, {tap}, Discard a card, Sacrifice a land: Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library.
|
// {2}{U}, {tap}, Discard a card, Sacrifice a land: Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library.
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay),
|
new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay),
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class EdgeOfAutumn extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
|
||||||
|
|
||||||
// If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 5),
|
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 5),
|
||||||
"If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library."));
|
"If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library."));
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class ElfhameSanctuary extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}");
|
||||||
|
|
||||||
// At the beginning of your upkeep, you may search your library for a basic land card, reveal that card, and put it into your hand. If you do, you skip your draw step this turn and shuffle your library.
|
// At the beginning of your upkeep, you may search your library for a basic land card, reveal that card, and put it into your hand. If you do, you skip your draw step this turn and shuffle your library.
|
||||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD)), TargetController.YOU, true);
|
Ability ability = new BeginningOfUpkeepTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND)), TargetController.YOU, true);
|
||||||
ability.addEffect(new SkipDrawStepThisTurn());
|
ability.addEffect(new SkipDrawStepThisTurn());
|
||||||
|
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class ElvishPioneer extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// When Elvish Pioneer enters the battlefield, you may put a basic land card from your hand onto the battlefield tapped.
|
// When Elvish Pioneer enters the battlefield, you may put a basic land card from your hand onto the battlefield tapped.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_BASIC_LAND_CARD_A, false, true), false));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_BASIC_LAND_A, false, true), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ElvishPioneer(final ElvishPioneer card) {
|
public ElvishPioneer(final ElvishPioneer card) {
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class EmbodimentOfSpring extends CardImpl {
|
||||||
|
|
||||||
// {1}{G}, {T}, Sacrifice Embodiment of Spring: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// {1}{G}, {T}, Sacrifice Embodiment of Spring: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new ManaCostsImpl("{1}{G}"));
|
new ManaCostsImpl("{1}{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class EvolutionCharm extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}");
|
||||||
|
|
||||||
// Choose one - Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library;
|
// Choose one - Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library;
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
|
||||||
|
|
||||||
// or return target creature card from your graveyard to your hand;
|
// or return target creature card from your graveyard to your hand;
|
||||||
Mode mode = new Mode();
|
Mode mode = new Mode();
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class EvolvingWilds extends CardImpl {
|
||||||
// {T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.
|
// {T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new TapSourceCost());
|
new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class ExplodingBorders extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{G}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{G}");
|
||||||
|
|
||||||
// Domain - Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. Exploding Borders deals X damage to target player, where X is the number of basic land types among lands you control.
|
// Domain - Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. Exploding Borders deals X damage to target player, where X is the number of basic land types among lands you control.
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
this.getSpellAbility().addEffect(new DamageTargetEffect(new DomainValue()));
|
this.getSpellAbility().addEffect(new DamageTargetEffect(new DomainValue()));
|
||||||
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,8 +52,8 @@ public class FarWanderings extends CardImpl {
|
||||||
// Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.
|
// 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.
|
// 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(
|
Effect effect = new ConditionalOneShotEffect(
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new CardsInControllerGraveCondition(7),
|
new CardsInControllerGraveCondition(7),
|
||||||
"Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.<br/><br/><i>Threshold</i> — 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.");
|
"Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.<br/><br/><i>Threshold</i> — 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.");
|
||||||
this.getSpellAbility().addEffect(effect);
|
this.getSpellAbility().addEffect(effect);
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class FarhavenElf extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
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.
|
// 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_BASIC_LAND_CARD), true, false), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, false), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public FarhavenElf(final FarhavenElf card) {
|
public FarhavenElf(final FarhavenElf card) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ class FertileThicketEffect extends OneShotEffect {
|
||||||
Cards cards = new CardsImpl();
|
Cards cards = new CardsImpl();
|
||||||
cards.addAll(controller.getLibrary().getTopCards(game, 5));
|
cards.addAll(controller.getLibrary().getTopCards(game, 5));
|
||||||
controller.lookAtCards(sourceObject.getIdName(), cards, game);
|
controller.lookAtCards(sourceObject.getIdName(), cards, game);
|
||||||
TargetCard target = new TargetCard(0, 1, Zone.LIBRARY, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCard target = new TargetCard(0, 1, Zone.LIBRARY, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
controller.chooseTarget(outcome, cards, target, source, game);
|
controller.chooseTarget(outcome, cards, target, source, game);
|
||||||
Cards cardsRevealed = new CardsImpl(target.getTargets());
|
Cards cardsRevealed = new CardsImpl(target.getTargets());
|
||||||
if (!cardsRevealed.isEmpty()) {
|
if (!cardsRevealed.isEmpty()) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class Fertilid extends CardImpl {
|
||||||
|
|
||||||
// {1}{G}, Remove a +1/+1 counter from Fertilid: Target player searches their library for a basic land card and puts it onto the battlefield tapped. Then that player shuffles their library.
|
// {1}{G}, Remove a +1/+1 counter from Fertilid: Target player searches their library for a basic land card and puts it onto the battlefield tapped. Then that player shuffles their library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayTargetPlayerEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), new ManaCostsImpl("{1}{G}"));
|
new SearchLibraryPutInPlayTargetPlayerEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), new ManaCostsImpl("{1}{G}"));
|
||||||
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
||||||
ability.addTarget(new TargetPlayer());
|
ability.addTarget(new TargetPlayer());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -115,7 +115,7 @@ class FieldOfRuinEffect extends OneShotEffect {
|
||||||
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
||||||
Player player = game.getPlayer(playerId);
|
Player player = game.getPlayer(playerId);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
player.moveCards(new CardsImpl(target.getTargets()), Zone.BATTLEFIELD, source, game);
|
player.moveCards(new CardsImpl(target.getTargets()), Zone.BATTLEFIELD, source, game);
|
||||||
player.shuffleLibrary(source, game);
|
player.shuffleLibrary(source, game);
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class FirebrandRanger extends CardImpl {
|
||||||
|
|
||||||
// {G}, {T}: You may put a basic land card from your hand onto the battlefield.
|
// {G}, {T}: You may put a basic land card from your hand onto the battlefield.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_BASIC_LAND_CARD_A), new ManaCostsImpl("{G}"));
|
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_BASIC_LAND_A), new ManaCostsImpl("{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public 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.
|
// {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_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay), new ManaCostsImpl("{1}{G}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay), new ManaCostsImpl("{1}{G}"));
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -91,7 +91,7 @@ class ForkInTheRoadEffect extends OneShotEffect {
|
||||||
if (controller == null || sourceObject == null) {
|
if (controller == null || sourceObject == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
Cards revealed = new CardsImpl();
|
Cards revealed = new CardsImpl();
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class FrenziedTilling extends CardImpl {
|
||||||
// Destroy target land. Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
|
// Destroy target land. Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new DestroyTargetEffect());
|
this.getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetLandPermanent());
|
this.getSpellAbility().addTarget(new TargetLandPermanent());
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public FrenziedTilling(final FrenziedTilling card) {
|
public FrenziedTilling(final FrenziedTilling card) {
|
||||||
|
|
|
@ -106,7 +106,7 @@ class FromTheAshesEffect extends OneShotEffect {
|
||||||
for (Map.Entry<UUID, Integer> entry : playerAmount.entrySet()) {
|
for (Map.Entry<UUID, Integer> entry : playerAmount.entrySet()) {
|
||||||
Player player = game.getPlayer(entry.getKey());
|
Player player = game.getPlayer(entry.getKey());
|
||||||
if (player != null && player.chooseUse(outcome, "Search your library for up to " + entry.getValue() + " basic land card(s) to put it onto the battlefield?", source, game)) {
|
if (player != null && player.chooseUse(outcome, "Search your library for up to " + entry.getValue() + " basic land card(s) to put it onto the battlefield?", source, game)) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, entry.getValue(), StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, entry.getValue(), StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
player.moveCards(new CardsImpl(target.getTargets()), Zone.BATTLEFIELD, source, game);
|
player.moveCards(new CardsImpl(target.getTargets()), Zone.BATTLEFIELD, source, game);
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class FrontierGuide extends CardImpl {
|
||||||
|
|
||||||
//{3}{G}, {T}: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.
|
//{3}{G}, {T}: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.
|
||||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new ManaCostsImpl("{3}{G}"));
|
new ManaCostsImpl("{3}{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -100,7 +100,7 @@ class GhostQuarterEffect extends OneShotEffect {
|
||||||
if (permanent != null) {
|
if (permanent != null) {
|
||||||
Player controller = game.getPlayer(permanent.getControllerId());
|
Player controller = game.getPlayer(permanent.getControllerId());
|
||||||
if (controller.chooseUse(Outcome.PutLandInPlay, "Do you wish to search for a basic land, put it onto the battlefield and then shuffle your library?", source, game)) {
|
if (controller.chooseUse(Outcome.PutLandInPlay, "Do you wish to search for a basic land, put it onto the battlefield and then shuffle your library?", source, game)) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class Greenseeker extends CardImpl {
|
||||||
|
|
||||||
// {G}, {tap}, Discard a card: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
|
// {G}, {tap}, Discard a card: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new ManaCostsImpl("{G}"));
|
new ManaCostsImpl("{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new DiscardCardCost());
|
ability.addCost(new DiscardCardCost());
|
||||||
|
|
|
@ -52,8 +52,8 @@ public 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.
|
// 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(
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD), false, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), false, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
|
||||||
KickedCondition.instance,
|
KickedCondition.instance,
|
||||||
"Search your 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."));
|
"Search your 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."));
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class GrowthSpasm extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
||||||
|
|
||||||
|
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new EldraziSpawnToken()));
|
this.getSpellAbility().addEffect(new CreateTokenEffect(new EldraziSpawnToken()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class Harrow extends CardImpl {
|
||||||
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("land"))));
|
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("land"))));
|
||||||
|
|
||||||
// Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library.
|
// Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library.
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ class HarvestSeasonEffect extends OneShotEffect {
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, new PermanentsOnBattlefieldCount(filter).calculate(game, source, this), StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, new PermanentsOnBattlefieldCount(filter).calculate(game, source, this), StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
controller.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
controller.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class HarvestWurm extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Harvest Wurm enters the battlefield, sacrifice it unless you return a basic land card from your graveyard to your hand.
|
// When Harvest Wurm enters the battlefield, sacrifice it unless you return a basic land card from your graveyard to your hand.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandFromGraveyardCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_BASIC_LAND_CARD)))));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandFromGraveyardCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_BASIC_LAND)))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public HarvestWurm(final HarvestWurm card) {
|
public HarvestWurm(final HarvestWurm card) {
|
||||||
|
|
|
@ -86,7 +86,7 @@ class HauntingEchoesEffect extends OneShotEffect {
|
||||||
Player targetPlayer = game.getPlayer(source.getFirstTarget());
|
Player targetPlayer = game.getPlayer(source.getFirstTarget());
|
||||||
if (targetPlayer != null) {
|
if (targetPlayer != null) {
|
||||||
for (Card card : targetPlayer.getGraveyard().getCards(game)) {
|
for (Card card : targetPlayer.getGraveyard().getCards(game)) {
|
||||||
if (!StaticFilters.FILTER_BASIC_LAND_CARD.match(card, game)) {
|
if (!StaticFilters.FILTER_CARD_BASIC_LAND.match(card, game)) {
|
||||||
card.moveToExile(null, "", source.getSourceId(), game);
|
card.moveToExile(null, "", source.getSourceId(), game);
|
||||||
|
|
||||||
FilterCard filterCard = new FilterCard("cards named " + card.getName());
|
FilterCard filterCard = new FilterCard("cards named " + card.getName());
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class HermitDruid extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {G}, {tap}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.
|
// {G}, {tap}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RevealCardsFromLibraryUntilEffect(StaticFilters.FILTER_BASIC_LAND_CARD, Zone.HAND, Zone.GRAVEYARD), new ManaCostsImpl("{G}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RevealCardsFromLibraryUntilEffect(StaticFilters.FILTER_CARD_BASIC_LAND, Zone.HAND, Zone.GRAVEYARD), new ManaCostsImpl("{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class HorizonSpellbomb extends CardImpl {
|
||||||
|
|
||||||
// {2}, {tap}, Sacrifice Horizon Spellbomb: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
|
// {2}, {tap}, Sacrifice Horizon Spellbomb: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
|
||||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new ManaCostsImpl("{2}"));
|
new ManaCostsImpl("{2}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class IthorianInitiate extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// When Ithorian Initiate enters the battlefield, you may search your library for a basic land, reveal it, and put it into your hand. If you do shuffle your library.
|
// When Ithorian Initiate enters the battlefield, you may search your library for a basic land, reveal it, and put it into your hand. If you do shuffle your library.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
|
|
||||||
// Meditate {1}{G}
|
// Meditate {1}{G}
|
||||||
this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{G}")));
|
this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{G}")));
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class JourneyOfDiscovery extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
||||||
|
|
||||||
// Choose one - Search your library for up to two basic land cards, reveal them, put them into your hand, then shuffle your library;
|
// Choose one - Search your library for up to two basic land cards, reveal them, put them into your hand, then shuffle your library;
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD)));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND)));
|
||||||
|
|
||||||
// or you may play up to two additional lands this turn.
|
// or you may play up to two additional lands this turn.
|
||||||
Mode mode = new Mode();
|
Mode mode = new Mode();
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class JourneyersKite extends CardImpl {
|
||||||
|
|
||||||
// {3}, {tap}: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
|
// {3}, {tap}: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new GenericManaCost(3));
|
new GenericManaCost(3));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -96,7 +96,7 @@ class JungleWayfinderEffect extends OneShotEffect {
|
||||||
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
||||||
Player player = game.getPlayer(playerId);
|
Player player = game.getPlayer(playerId);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.chooseUse(Outcome.Benefit, "Search your library for a card to put into your hand?", source, game)) {
|
if (player.chooseUse(Outcome.Benefit, "Search your library for a card to put into your hand?", source, game)) {
|
||||||
player.searchLibrary(target, game);
|
player.searchLibrary(target, game);
|
||||||
for (UUID cardId : target.getTargets()) {
|
for (UUID cardId : target.getTargets()) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class KhalniHeartExpedition extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
this.addAbility(new LandfallAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
|
this.addAbility(new LandfallAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay),
|
new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay),
|
||||||
new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
|
new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
|
||||||
|
|
|
@ -93,7 +93,7 @@ class KodamasReachEffect extends OneShotEffect {
|
||||||
if (controller == null || sourceObject == null) {
|
if (controller == null || sourceObject == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
Cards revealed = new CardsImpl();
|
Cards revealed = new CardsImpl();
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class KrosanTusker extends CardImpl {
|
||||||
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}{G}")));
|
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}{G}")));
|
||||||
// When you cycle Krosan Tusker, you may search your library for a basic land card, reveal that card, put it into your hand, then shuffle your library.
|
// When you cycle Krosan Tusker, you may search your library for a basic land card, reveal that card, put it into your hand, then shuffle your library.
|
||||||
this.addAbility(new CycleTriggeredAbility(
|
this.addAbility(new CycleTriggeredAbility(
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
true));
|
true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class KrosanWayfarer extends CardImpl {
|
||||||
|
|
||||||
// Sacrifice Krosan Wayfarer: You may put a land card from your hand onto the battlefield.
|
// Sacrifice Krosan Wayfarer: You may put a land card from your hand onto the battlefield.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_BASIC_LAND_CARD_A), new SacrificeSourceCost()));
|
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_BASIC_LAND_A), new SacrificeSourceCost()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public KrosanWayfarer(final KrosanWayfarer card) {
|
public KrosanWayfarer(final KrosanWayfarer card) {
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class LandTax extends CardImpl {
|
||||||
|
|
||||||
// At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library.
|
// At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library.
|
||||||
this.addAbility(new ConditionalTriggeredAbility(
|
this.addAbility(new ConditionalTriggeredAbility(
|
||||||
new BeginningOfUpkeepTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_BASIC_LAND_CARD), true), TargetController.YOU, true),
|
new BeginningOfUpkeepTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true), TargetController.YOU, true),
|
||||||
new OpponentControlsMoreCondition(StaticFilters.FILTER_LANDS),
|
new OpponentControlsMoreCondition(StaticFilters.FILTER_LANDS),
|
||||||
"At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library"
|
"At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library"
|
||||||
));
|
));
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class LayOfTheLand extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
// Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
// Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public LayOfTheLand(final LayOfTheLand card) {
|
public LayOfTheLand(final LayOfTheLand card) {
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class LlanowarScout extends CardImpl {
|
||||||
|
|
||||||
// {T}: You may put a land card from your hand onto the battlefield.
|
// {T}: You may put a land card from your hand onto the battlefield.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_BASIC_LAND_CARD_A), new TapSourceCost()));
|
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_BASIC_LAND_A), new TapSourceCost()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public LlanowarScout(final LlanowarScout card) {
|
public LlanowarScout(final LlanowarScout card) {
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class LoamLarva extends CardImpl {
|
||||||
this.toughness = new MageInt(3);
|
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.
|
// 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_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class MapTheWastes extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
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.
|
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true));
|
||||||
|
|
||||||
// Bolster 1.
|
// Bolster 1.
|
||||||
|
|
|
@ -49,8 +49,8 @@ public class MycosynthWellspring extends CardImpl {
|
||||||
|
|
||||||
// When Mycosynth Wellspring enters the battlefield or is put into a graveyard from the battlefield,
|
// When Mycosynth Wellspring enters the battlefield or is put into a graveyard from the battlefield,
|
||||||
// you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
// you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
this.addAbility(new DiesTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new DiesTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public MycosynthWellspring(final MycosynthWellspring card) {
|
public MycosynthWellspring(final MycosynthWellspring card) {
|
||||||
|
|
|
@ -117,7 +117,7 @@ public class NaturalBalance extends CardImpl {
|
||||||
int amount = 5 - landCount;
|
int amount = 5 - landCount;
|
||||||
if (landCount < 5 && player.chooseUse(outcome, "Search your library for up to " + amount + " basic land cards and put them onto the battlefield?", source, game)) {
|
if (landCount < 5 && player.chooseUse(outcome, "Search your library for up to " + amount + " basic land cards and put them onto the battlefield?", source, game)) {
|
||||||
// Select lands and put them onto battlefield
|
// Select lands and put them onto battlefield
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, amount, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, amount, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game);
|
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game);
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class NaturalConnection extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}");
|
||||||
|
|
||||||
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,7 +89,7 @@ class NewFrontiersEffect extends OneShotEffect {
|
||||||
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
||||||
Player player = game.getPlayer(playerId);
|
Player player = game.getPlayer(playerId);
|
||||||
if (player != null && player.chooseUse(outcome, "Search your library for up to " + amount + " basic lands?", source, game)) {
|
if (player != null && player.chooseUse(outcome, "Search your library for up to " + amount + " basic lands?", source, game)) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, amount, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, amount, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
||||||
player.shuffleLibrary(source, game);
|
player.shuffleLibrary(source, game);
|
||||||
|
|
|
@ -115,7 +115,7 @@ class NissaWorldwakerSearchEffect extends OneShotEffect {
|
||||||
if (controller == null) {
|
if (controller == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, Integer.MAX_VALUE, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, Integer.MAX_VALUE, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
for (UUID cardId : target.getTargets()) {
|
for (UUID cardId : target.getTargets()) {
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class NissasExpedition extends CardImpl {
|
||||||
// Convoke
|
// Convoke
|
||||||
this.addAbility(new ConvokeAbility());
|
this.addAbility(new ConvokeAbility());
|
||||||
// Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
|
// 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_BASIC_LAND_CARD), true, true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public NissasExpedition(final NissasExpedition card) {
|
public NissasExpedition(final NissasExpedition card) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class NissasRenewal extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}");
|
||||||
|
|
||||||
// Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life.
|
// Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life.
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
this.getSpellAbility().addEffect(new GainLifeEffect(7));
|
this.getSpellAbility().addEffect(new GainLifeEffect(7));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class OashraCultivator extends CardImpl {
|
||||||
|
|
||||||
// {2}{G}, {T}, Sacrifice Oashra Cultivator: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// {2}{G}, {T}, Sacrifice Oashra Cultivator: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new ManaCostsImpl("{2}{G}"));
|
new ManaCostsImpl("{2}{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -119,7 +119,7 @@ class OathOfLiegesEffect extends OneShotEffect {
|
||||||
Player activePlayer = game.getPlayer(game.getActivePlayerId());
|
Player activePlayer = game.getPlayer(game.getActivePlayerId());
|
||||||
if (activePlayer != null) {
|
if (activePlayer != null) {
|
||||||
if (activePlayer.chooseUse(outcome, "Search your library for a basic land card, put that card onto the battlefield, then shuffle your library?", source, game)) {
|
if (activePlayer.chooseUse(outcome, "Search your library for a basic land card, put that card onto the battlefield, then shuffle your library?", source, game)) {
|
||||||
Effect effect = new SearchLibraryPutInPlayTargetPlayerEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), false, true, Outcome.PutLandInPlay, true);
|
Effect effect = new SearchLibraryPutInPlayTargetPlayerEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), false, true, Outcome.PutLandInPlay, true);
|
||||||
effect.setTargetPointer(new FixedTarget(game.getActivePlayerId()));
|
effect.setTargetPointer(new FixedTarget(game.getActivePlayerId()));
|
||||||
return effect.apply(game, source);
|
return effect.apply(game, source);
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class OnduGiant extends CardImpl {
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(4);
|
this.toughness = new MageInt(4);
|
||||||
|
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public OnduGiant(final OnduGiant card) {
|
public OnduGiant(final OnduGiant card) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class OneWithNature extends CardImpl {
|
||||||
|
|
||||||
// Whenever enchanted creature deals combat damage to a player, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.
|
// Whenever enchanted creature deals combat damage to a player, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.
|
||||||
ability = new DealsDamageToAPlayerAttachedTriggeredAbility(
|
ability = new DealsDamageToAPlayerAttachedTriggeredAbility(
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, Outcome.PutLandInPlay)
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, Outcome.PutLandInPlay)
|
||||||
.setText("you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library."),
|
.setText("you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library."),
|
||||||
"enchanted creature", true, false, true, TargetController.ANY);
|
"enchanted creature", true, false, true, TargetController.ANY);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -76,7 +76,7 @@ public class OrdealOfNylea extends CardImpl {
|
||||||
this.addAbility(ability);
|
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.
|
// 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(
|
ability = new SacrificeSourceTriggeredAbility(
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_BASIC_LAND_CARD),true, true),false);
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LAND),true, true),false);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ class PathToExileEffect extends OneShotEffect {
|
||||||
// if the zone change to exile gets replaced does not prevent the target controller to be able to search
|
// if the zone change to exile gets replaced does not prevent the target controller to be able to search
|
||||||
controller.moveCardToExileWithInfo(permanent, null, "", source.getSourceId(), game, Zone.BATTLEFIELD, true);
|
controller.moveCardToExileWithInfo(permanent, null, "", source.getSourceId(), game, Zone.BATTLEFIELD, true);
|
||||||
if (player.chooseUse(Outcome.PutCardInPlay, "Search your library for a basic land card?", source, game)) {
|
if (player.chooseUse(Outcome.PutCardInPlay, "Search your library for a basic land card?", source, game)) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.searchLibrary(target, game)) {
|
if (player.searchLibrary(target, game)) {
|
||||||
Card card = player.getLibrary().getCard(target.getFirstTarget(), game);
|
Card card = player.getLibrary().getCard(target.getFirstTarget(), game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
|
|
|
@ -96,7 +96,7 @@ class PeregrinationEffect extends OneShotEffect {
|
||||||
if (controller == null || sourceObject == null) {
|
if (controller == null || sourceObject == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
if (!target.getTargets().isEmpty()) {
|
if (!target.getTargets().isEmpty()) {
|
||||||
Cards revealed = new CardsImpl();
|
Cards revealed = new CardsImpl();
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class PilgrimsEye extends CardImpl {
|
||||||
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
// When Pilgrim's Eye enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
// When Pilgrim's Eye enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public PilgrimsEye (final PilgrimsEye card) {
|
public PilgrimsEye (final PilgrimsEye card) {
|
||||||
|
|
|
@ -89,7 +89,7 @@ class PlanarBirthEffect extends OneShotEffect {
|
||||||
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
|
||||||
Player player = game.getPlayer(playerId);
|
Player player = game.getPlayer(playerId);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
toBattlefield.addAll(player.getGraveyard().getCards(StaticFilters.FILTER_BASIC_LAND_CARD, source.getSourceId(), controller.getId(), game));
|
toBattlefield.addAll(player.getGraveyard().getCards(StaticFilters.FILTER_CARD_BASIC_LAND, source.getSourceId(), controller.getId(), game));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
controller.moveCards(toBattlefield.getCards(game), Zone.BATTLEFIELD, source, game, true, false, true, null);
|
controller.moveCards(toBattlefield.getCards(game), Zone.BATTLEFIELD, source, game, true, false, true, null);
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class PrimalDruid extends CardImpl {
|
||||||
this.toughness = new MageInt(3);
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
// When Primal Druid dies, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// When Primal Druid dies, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true);
|
Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true);
|
||||||
effect.setText("you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library");
|
effect.setText("you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library");
|
||||||
this.addAbility(new DiesTriggeredAbility(effect, true));
|
this.addAbility(new DiesTriggeredAbility(effect, true));
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,8 @@ public 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.
|
// 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(
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_BASIC_LAND_CARD), false, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), false, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), false, true),
|
||||||
KickedCondition.instance,
|
KickedCondition.instance,
|
||||||
"Search your library for a basic land card, put that card onto the battlefield, then shuffle your library. If this spell was kicked, instead search your library for up to two basic land cards, put them onto the battlefield, then shuffle your library"));
|
"Search your library for a basic land card, put that card onto the battlefield, then shuffle your library. If this spell was kicked, instead search your library for up to two basic land cards, put them onto the battlefield, then shuffle your library"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class QuirionTrailblazer extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
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.
|
// 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_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public QuirionTrailblazer(final QuirionTrailblazer card) {
|
public QuirionTrailblazer(final QuirionTrailblazer card) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class RampantGrowth extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}");
|
||||||
|
|
||||||
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// 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_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public RampantGrowth(final RampantGrowth card) {
|
public RampantGrowth(final RampantGrowth card) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class RangingRaptors extends CardImpl {
|
||||||
// Enrage - Whenever Ranging Raptors is dealt damage, you may search your library for a basic land card, put it onto the battlefield, then shuffle your library.
|
// Enrage - Whenever Ranging Raptors is dealt damage, you may search your library for a basic land card, put it onto the battlefield, then shuffle your library.
|
||||||
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
true,
|
true,
|
||||||
true);
|
true);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class RenegadeMap extends CardImpl {
|
||||||
// {T}, Sacrifice Renegade Map: Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
// {T}, Sacrifice Renegade Map: Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true),
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||||
new TapSourceCost()
|
new TapSourceCost()
|
||||||
);
|
);
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class Renewal extends CardImpl {
|
||||||
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land"))));
|
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land"))));
|
||||||
|
|
||||||
// Search your library for a basic land card and put that card onto the battlefield. Then shuffle your library.
|
// Search your library for a basic land card and put that card onto the battlefield. Then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD)));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND)));
|
||||||
|
|
||||||
// Draw a card at the beginning of the next turn's upkeep.
|
// Draw a card at the beginning of the next turn's upkeep.
|
||||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||||
|
|
|
@ -100,7 +100,7 @@ class RitesOfSpringEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
game.applyEffects();
|
game.applyEffects();
|
||||||
return new SearchLibraryPutInHandEffect(
|
return new SearchLibraryPutInHandEffect(
|
||||||
new TargetCardInLibrary(0, numDiscarded, StaticFilters.FILTER_BASIC_LAND_CARD), true, true)
|
new TargetCardInLibrary(0, numDiscarded, StaticFilters.FILTER_CARD_BASIC_LAND), true, true)
|
||||||
.apply(game, source);
|
.apply(game, source);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -96,7 +96,7 @@ class RuinInTheirWakeEffect extends OneShotEffect {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
MageObject sourceObject = source.getSourceObject(game);
|
MageObject sourceObject = source.getSourceObject(game);
|
||||||
if (controller != null && sourceObject != null) {
|
if (controller != null && sourceObject != null) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, game)) {
|
if (controller.searchLibrary(target, game)) {
|
||||||
Card card = game.getCard(target.getFirstTarget());
|
Card card = game.getCard(target.getFirstTarget());
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class SakuraTribeElder extends CardImpl {
|
||||||
|
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay), new SacrificeSourceCost()));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay), new SacrificeSourceCost()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class SearchForTomorrow extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
// Search your library for a basic land card and put it onto the battlefield. Then shuffle your library.
|
// Search your library for a basic land card and put it onto the battlefield. Then shuffle your library.
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay));
|
||||||
|
|
||||||
// Suspend 2-{G}
|
// Suspend 2-{G}
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class SeekTheHorizon extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{G}");
|
||||||
|
|
||||||
// Search your library for up to three basic land cards, reveal them, and put them into your hand. Then shuffle your library.
|
// Search your library for up to three basic land cards, reveal them, and put them into your hand. Then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SeekTheHorizon(final SeekTheHorizon card) {
|
public SeekTheHorizon(final SeekTheHorizon card) {
|
||||||
|
|
|
@ -105,7 +105,7 @@ class SettleTheWreckageEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
controller.moveCards(toExile, Zone.EXILED, source, game);
|
controller.moveCards(toExile, Zone.EXILED, source, game);
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(0, attackers, StaticFilters.FILTER_BASIC_LAND_CARD);
|
TargetCardInLibrary target = new TargetCardInLibrary(0, attackers, StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (player.chooseUse(Outcome.Benefit, "Search for up to " + attackers + " basic land" + ((attackers == 1) ? "" : "s") + "?", source, game) && player.searchLibrary(target, game)) {
|
if (player.chooseUse(Outcome.Benefit, "Search for up to " + attackers + " basic land" + ((attackers == 1) ? "" : "s") + "?", source, game) && player.searchLibrary(target, game)) {
|
||||||
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
player.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null);
|
||||||
player.shuffleLibrary(source, game);
|
player.shuffleLibrary(source, game);
|
||||||
|
|
|
@ -62,7 +62,7 @@ public 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.
|
// {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,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new ManaCostsImpl("{G}"));
|
new ManaCostsImpl("{G}"));
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -59,7 +59,7 @@ public 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.
|
// {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,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true, true),
|
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||||
new ManaCostsImpl("{1}{G}"));
|
new ManaCostsImpl("{1}{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new DiscardCardCost());
|
ability.addCost(new DiscardCardCost());
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class SkitteringSurveyor extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Skittering Surveyor enters the battlefield, you may search your library for a basic land, reveal it, put it into your hand, then shuffle your library.
|
// When Skittering Surveyor enters the battlefield, you may search your library for a basic land, reveal it, put it into your hand, then shuffle your library.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true, true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SkitteringSurveyor(final SkitteringSurveyor card) {
|
public SkitteringSurveyor(final SkitteringSurveyor card) {
|
||||||
|
|
|
@ -53,8 +53,11 @@ public class SkyshroudRanger extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {tap}: You may put a land card from your hand onto the battlefield. Activate this ability only any time you could cast a sorcery.
|
// {tap}: You may put a land card from your hand onto the battlefield. Activate this ability only any time you could cast a sorcery.
|
||||||
this.addAbility(new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD,
|
this.addAbility(new ActivateAsSorceryActivatedAbility(
|
||||||
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_BASIC_LAND_CARD_A), new TapSourceCost()));
|
Zone.BATTLEFIELD,
|
||||||
|
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_LAND_A),
|
||||||
|
new TapSourceCost()
|
||||||
|
));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class SolemnSimulacrum extends CardImpl {
|
||||||
this.subtype.add(SubType.GOLEM);
|
this.subtype.add(SubType.GOLEM);
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true), true));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
|
||||||
this.addAbility(new DiesTriggeredAbility(new DrawCardSourceControllerEffect(1), true));
|
this.addAbility(new DiesTriggeredAbility(new DrawCardSourceControllerEffect(1), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class SpringMind extends SplitCard {
|
||||||
|
|
||||||
// Spring
|
// Spring
|
||||||
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
// Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
|
||||||
getLeftHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
getLeftHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
|
|
||||||
// Mind
|
// Mind
|
||||||
// Aftermath
|
// Aftermath
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class SproutingVines extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
// Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
// Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_BASIC_LAND_CARD), true));
|
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||||
// Storm
|
// Storm
|
||||||
this.addAbility(new StormAbility());
|
this.addAbility(new StormAbility());
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue