[OGW] Added Reaver Drone, Dimensional Infiltrator, Expedite, Hedron Crawler, Matter Reshaper, Warping Wail, and Zendikar Resurgent.

This commit is contained in:
fireshoes 2016-01-07 13:16:57 -06:00
parent 51b4979f71
commit c6c309bc44
9 changed files with 712 additions and 69 deletions

View file

@ -42,7 +42,7 @@ import mage.target.TargetSpell;
*/
public class Envelop extends CardImpl {
private static final FilterSpell filter = new FilterSpell("Sorcery");
private static final FilterSpell filter = new FilterSpell("sorcery spell");
static {
filter.add(new CardTypePredicate(CardType.SORCERY));

View file

@ -0,0 +1,127 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ReturnToHandSourceEffect;
import mage.abilities.keyword.DevoidAbility;
import mage.abilities.keyword.FlashAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.game.Game;
import mage.players.Player;
import mage.target.common.TargetOpponent;
/**
*
* @author fireshoes
*/
public class DimensionalInfiltrator extends CardImpl {
public DimensionalInfiltrator(UUID ownerId) {
super(ownerId, 44, "Dimensional Infiltrator", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.expansionSetCode = "OGW";
this.subtype.add("Eldrazi");
this.power = new MageInt(2);
this.toughness = new MageInt(1);
// Devoid
this.addAbility(new DevoidAbility(this.color));
// Flash
this.addAbility(FlashAbility.getInstance());
// Flying
this.addAbility(FlyingAbility.getInstance());
// {1}{C}: Exile the top card of target opponent's library. If it's a land card, you may return Dimensional Infiltrator to its owner's hand.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DimensionalInfiltratorEffect(), new ManaCostsImpl("{1}{C}"));
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
}
public DimensionalInfiltrator(final DimensionalInfiltrator card) {
super(card);
}
@Override
public DimensionalInfiltrator copy() {
return new DimensionalInfiltrator(this);
}
}
class DimensionalInfiltratorEffect extends OneShotEffect {
public DimensionalInfiltratorEffect() {
super(Outcome.PutCreatureInPlay);
this.staticText = "Exile the top card of target opponent's library. If it's a land card, you may return Dimensional Infiltrator to its owner's hand";
}
public DimensionalInfiltratorEffect(final DimensionalInfiltratorEffect effect) {
super(effect);
}
@Override
public DimensionalInfiltratorEffect copy() {
return new DimensionalInfiltratorEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
Player opponent = game.getPlayer(source.getFirstTarget());
MageObject sourceObject = game.getObject(source.getSourceId());
if (opponent == null || controller == null || sourceObject == null) {
return false;
}
if (opponent.getLibrary().size() > 0) {
Card card = opponent.getLibrary().getFromTop(game);
if (card != null) {
card.moveToExile(null, "Dimensional Infiltrator", source.getSourceId(), game);
if (card.getCardType().contains(CardType.LAND)) {
if (controller.chooseUse(Outcome.Neutral, "Return " + sourceObject.getIdName() + " to its owner's hand?", source, game)) {
new ReturnToHandSourceEffect(true).apply(game, source);
}
}
}
}
return true;
}
}

View file

@ -0,0 +1,66 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.target.common.TargetCreaturePermanent;
/**
*
* @author fireshoes
*/
public class Expedite extends CardImpl {
public Expedite(UUID ownerId) {
super(ownerId, 108, "Expedite", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{R}");
this.expansionSetCode = "OGW";
// Target creature gains haste until end of turn.
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
}
public Expedite(final Expedite card) {
super(card);
}
@Override
public Expedite copy() {
return new Expedite(this);
}
}

View file

@ -0,0 +1,62 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
/**
*
* @author fireshoes
*/
public class HedronCrawler extends CardImpl {
public HedronCrawler(UUID ownerId) {
super(ownerId, 164, "Hedron Crawler", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}");
this.expansionSetCode = "OGW";
this.subtype.add("Construct");
this.power = new MageInt(0);
this.toughness = new MageInt(1);
// {T}: Add {C} to your mana pool.
this.addAbility(new ColorlessManaAbility());
}
public HedronCrawler(final HedronCrawler card) {
super(card);
}
@Override
public HedronCrawler copy() {
return new HedronCrawler(this);
}
}

View file

@ -0,0 +1,117 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.DiesTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.game.Game;
import mage.players.Player;
/**
*
* @author fireshoes
*/
public class MatterReshaper extends CardImpl {
public MatterReshaper(UUID ownerId) {
super(ownerId, 8, "Matter Reshaper", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{C}");
this.expansionSetCode = "OGW";
this.subtype.add("Eldrazi");
this.power = new MageInt(3);
this.toughness = new MageInt(2);
// When Matter Reshaper dies, reveal the top card of your library. You may put that card onto the battlefield
// if it's a permanent card with converted mana cost 3 or less. Otherwise, put that card into your hand.
this.addAbility(new DiesTriggeredAbility(new MatterReshaperEffect(), false));
}
public MatterReshaper(final MatterReshaper card) {
super(card);
}
@Override
public MatterReshaper copy() {
return new MatterReshaper(this);
}
}
class MatterReshaperEffect extends OneShotEffect {
public MatterReshaperEffect() {
super(Outcome.Benefit);
staticText = "reveal the top card of your library. You may put that card onto the battlefield if it's a permanent card"
+ " with converted mana cost 3 or less. Otherwise, put that card into your hand";
}
public MatterReshaperEffect(final MatterReshaperEffect effect) {
super(effect);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = game.getObject(source.getSourceId());
if (controller != null && sourceObject != null && controller.getLibrary().size() > 0) {
Card card = controller.getLibrary().getFromTop(game);
if (card == null) {
return false;
}
controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game);
FilterPermanentCard filter = new FilterPermanentCard("permanent card with converted mana cost 3 or less");
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
if (filter.match(card, game)) {
if (controller.chooseUse(Outcome.PutCardInPlay, "Put " + card.getName() + " onto the battlefield (otherwise put in hand)?", source, game)) {
card.putOntoBattlefield(game, Zone.LIBRARY, source.getSourceId(), source.getControllerId(), false);
return true;
}
}
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
return true;
}
return false;
}
@Override
public MatterReshaperEffect copy() {
return new MatterReshaperEffect(this);
}
}

View file

@ -0,0 +1,86 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.InvertCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.keyword.DevoidAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ColorlessPredicate;
import mage.filter.predicate.permanent.AnotherPredicate;
/**
*
* @author fireshoes
*/
public class ReaverDrone extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another colorless creature");
static {
filter.add(new AnotherPredicate());
filter.add(new ColorlessPredicate());
}
public ReaverDrone(UUID ownerId) {
super(ownerId, 76, "Reaver Drone", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}");
this.expansionSetCode = "OGW";
this.subtype.add("Eldrazi");
this.subtype.add("Drone");
this.power = new MageInt(2);
this.toughness = new MageInt(1);
// Devoid
this.addAbility(new DevoidAbility(this.color));
// At the beginning of your upkeep, you lose 1 life unless you control another colorless creature.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConditionalOneShotEffect(
new LoseLifeSourceControllerEffect(1),
new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, true)),
"you lose 1 life unless you control another colorless creature"), TargetController.YOU, false));
}
public ReaverDrone(final ReaverDrone card) {
super(card);
}
@Override
public ReaverDrone copy() {
return new ReaverDrone(this);
}
}

View file

@ -0,0 +1,99 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.abilities.Mode;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CounterTargetEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.filter.Filter;
import mage.filter.Filter.ComparisonType;
import mage.filter.FilterSpell;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.filter.predicate.mageobject.ToughnessPredicate;
import mage.game.permanent.token.EldraziScionToken;
import mage.target.TargetSpell;
import mage.target.common.TargetCreaturePermanent;
/**
*
* @author fireshoes
*/
public class WarpingWail extends CardImpl {
private static final FilterCreaturePermanent filterCreature = new FilterCreaturePermanent("creature with power or toughness 1 or less");
private static final FilterSpell filterSorcery = new FilterSpell("sorcery spell");
static {
filterCreature.add(Predicates.or(
new PowerPredicate(Filter.ComparisonType.LessThan, 2),
new ToughnessPredicate(ComparisonType.LessThan, 2)));
filterSorcery.add(new CardTypePredicate(CardType.SORCERY));
}
public WarpingWail(UUID ownerId) {
super(ownerId, 12, "Warping Wail", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{C}");
this.expansionSetCode = "OGW";
// Choose one — Exile target creature with power or toughness 1 or less.
Effect effect = new ExileTargetEffect();
effect.setText("Exile target creature with power or toughness 1 or less.");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filterCreature));
// Counter target sorcery spell.
Mode mode = new Mode();
mode.getEffects().add(new CounterTargetEffect());
mode.getTargets().add(new TargetSpell(filterSorcery));
this.getSpellAbility().addMode(mode);
// Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."
mode = new Mode();
effect = new CreateTokenEffect(new EldraziScionToken());
effect.setText("Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\"");
mode.getEffects().add(effect);
this.getSpellAbility().addMode(mode);
}
public WarpingWail(final WarpingWail card) {
super(card);
}
@Override
public WarpingWail copy() {
return new WarpingWail(this);
}
}

View file

@ -0,0 +1,79 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.oathofthegatewatch;
import java.util.UUID;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.common.TapForManaAllTriggeredManaAbility;
import mage.abilities.effects.common.AddManaOfAnyTypeProducedEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
/**
*
* @author fireshoes
*/
public class ZendikarResurgent extends CardImpl {
private static final FilterSpell filter = new FilterSpell("a creature spell");
static {
filter.add(new CardTypePredicate(CardType.CREATURE));
}
public ZendikarResurgent(UUID ownerId) {
super(ownerId, 147, "Zendikar Resurgent", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{5}{G}{G}");
this.expansionSetCode = "OGW";
// Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced. (<i>The types of mana are white, blue, black, red, green, and colorless.)</i>
AddManaOfAnyTypeProducedEffect effect = new AddManaOfAnyTypeProducedEffect();
effect.setText("add one mana to your mana pool of any type that land produced");
this.addAbility(new TapForManaAllTriggeredManaAbility(
effect,
new FilterControlledLandPermanent("you tap a land"),
SetTargetPointer.PERMANENT));
// Whenever you cast a creature spell, draw a card.
this.addAbility(new SpellCastControllerTriggeredAbility(new DrawCardSourceControllerEffect(1), filter, false));
}
public ZendikarResurgent(final ZendikarResurgent card) {
super(card);
}
@Override
public ZendikarResurgent copy() {
return new ZendikarResurgent(this);
}
}

View file

@ -28247,10 +28247,12 @@ Deceiver of Form|Oath of the Gatewatch|1|R|{6}{C}|Creature - Eldrazi|8|8|At the
Eldrazi Mimic|Oath of the Gatewatch|2|R|{2}|Creature - Eldrazi|2|1|Whenever another colorless creature enters the battlefield under your control, you may have the base power and toughness of Eldrazi Mimic become that creature's power and toughness until end of turn.|
Endbringer|Oath of the Gatewatch|3|R|{5}{C}|Creature - Eldrazi|5|5|Untap Endbringer during each other player's untap step.${T}: Endbringer deals 1 damage to target creature or player.${C}, {T}: Target creature can't attack or block this turn.${C}{C}, {T}: Draw a card.|
Kozilek, the Great Distortion|Oath of the Gatewatch|4|M|{8}{C}{C}|Legendary Creature - Eldrazi|12|12|When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference.$Menace$Discard a card with converted mana cost X: Counter target spell with converted mana cost X.|
Matter Reshaper|Oath of the Gatewatch|8|R|{2}{C}|Creature - Eldrazi|3|2|When Matter Reshaper dies, reveal the top card of your library. You may put that card onto the battlefield if it's a permanent card with converted mana cost 3 or less. Otherwise, put that card into your hand.|
Reality Smasher|Oath of the Gatewatch|7|R|{4}{C}|Creature - Eldrazi|5|5|Trample, haste$Whenever Reality Smasher becomes the target of a spell an opponent controls, counter that spell unless its controller discards a card.|
Spatial Contortion|Oath of the Gatewatch|8|U|{1}{C}|Instant|||Target creature gets +3/-3 until end of turn.|
Thought-Knot Seer|Oath of the Gatewatch|9|R|{3}{C}|Creature - Eldrazi|4|4|When Thought-Knot Seer enters the battlefield, target opponent reveals his or her hand. You choose a nonland card from it and exile that card.$When Thought-Knot Seer leaves the battlefield, target opponent draws a card.|
Walker of the Wastes|Oath of the Gatewatch|10|U|{4}{C}|Creature - Eldrazi|4|4|Trample$Walker of the Wastes gets +1/+1 for each land you control named Wastes.|
Warping Wail|Oath of the Gatewatch|12|U|{1}{C}|Instant|||Choose one &mdash; Exile target creature with power or toughness 1 or less.; Counter target sorcery spell.; Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."|
Eldrazi Displacer|Oath of the Gatewatch|13|R|{2}{W}|Creature - Eldrazi|3|3|Devoid <i>(This card has no color.)</i>${2}{C}: Exile another target creature, then return it to the battlefield tapped under its owner's control.|
Call the Gatewatch|Oath of the Gatewatch|16|R|{2}{W}|Sorcery|||Search your library for a planeswalker card, reveal it, and put it into your hand. Then shuffle your library.|
General Tazri|Oath of the Gatewatch|19|M|{4}{W}|Legendary Creature - Human Ally|3|4|When General Tazri enters the battlefield, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.${W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.|
@ -28262,6 +28264,7 @@ Relief Captain|Oath of the Gatewatch|32|U|{2}{W}{W}|Creature - Kor Knight Ally|3
Shoulder to Shoulder|Oath of the Gatewatch|34|C|{2}{W}|Sorcery|||Support 2. <i>(Put a +1/+1 counter on each of up to two target creatures.)</i>$Draw a card.|
Stone Haven Outfitter|Oath of the Gatewatch|37|R|{1}{W}|Creature - Kor Artificer Ally|2|2|Equipped creatures you control get +1/+1.$Whenever an equipped creature you control dies, draw a card.|
Deepfathom Skulker|Oath of the Gatewatch|43|R|{5}{U}|Creature - Eldrazi|4|4|Devoid <i>(This card has no color.)</i>$Whenever a creature you control deals combat damage to a player, you may draw a card.${3}{C}: Target creature can't be blocked this turn.|
Dimensional Infiltrator|Oath of the Gatewatch|44|R|{1}{U}|Creature - Eldrazi|2|1|Devoid <i>(This card has no color.)</i>$Flash$Flying${1}{C}: Exile the top card of target opponent's library. If it's a land card, you may return Dimensional Infiltrator to its owner's hand.|
Prophet of Distortion|Oath of the Gatewatch|46|U|{U}|Creature - Eldrazi Drone|1|2|Devoid <i>(This card has no color.)</i>${3}{C}: Draw a card.|
Void Shatter|Oath of the Gatewatch|49|U|{1}{U}{U}|Instant|||Devoid <i>(This card has no color.)</i>$Counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.|
Comparative Analysis|Oath of the Gatewatch|51|C|{3}{U}|Instant|||Surge {2}{U} <You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Target player draws two cards.|
@ -28276,6 +28279,7 @@ Bearer of Silence|Oath of the Gatewatch|67|R|{1}{B}|Creature - Eldrazi|2|1|Devoi
Dread Defiler|Oath of the Gatewatch|68|R|{6}{B}|Creature - Eldrazi|6|8|Devoid <i>(This card has no color.)</i>${3}{C}, Exile a creature card from your graveyard: Target opponent loses life equal to the exiled card's power.|
Skinning Tendrils|Oath of the Gatewatch|70|U|{1}{B}{B}|Sorcery|||Devoid <i>(This card has no color.)</i>$All creatures get -2/-2 until end of turn. If a creature would die this turn, exile it instead.|
Inverter of Truth|Oath of the Gatewatch|72|M|{2}{B}{B}|Creature - Eldrazi|6|6|Devoid <i>(This card has no color.)</i>$Flying$When Inverter of Truth enters the battlefield, exile all cards from your library face down, then shuffle all cards from your graveyard into your library.|
Reaver Drone|Oath of the Gatewatch|76|U|{B}|Creature - Eldrazi Drone|2|1|Devoid <i>(This card has no color.)</i>$At the beginning of your upkeep, you lose 1 life unless you control another colorless creature.|
Sifter of Skulls|Oath of the Gatewatch|77|R|{3}{B}|Creature - Eldrazi|4|3|Devoid <i>(This card has no color.)</i>$Whenever another nontoken creature you control dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."|
Drana's Chosen|Oath of the Gatewatch|84|R|{3}{B}|Creature - Vampire Shaman Ally|2|2|<i>Cohort</i> &mdash; {T}, Tap an untapped Ally you control: Put a 2/2 black Zombie creature token onto the battlefield tapped.|
Kalitas, Traitor of Ghet|Oath of the Gatewatch|86|M|{2}{B}{B}|Legendary Creature - Vampire Warrior|3|4|Lifelink$If a nontoken creature an opponent controls would die, instead exile that card and put a 2/2 black Zombie creature token onto the battlefield.${2}{B}, Sacrifice another Vampire or Zombie: Put two +1/+1 counters on Kalitas, Traitor of Ghet.|
@ -28285,6 +28289,7 @@ Kozilek's Return|Oath of the Gatewatch|98|M|{2}{R}|Instant|||Devoid <i>(This car
Boulder Salvo|Oath of the Gatewatch|102|C|{4}{R}|Sorcery|||Surge {1}{R} <i>(You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Boulder Salvo deals 4 damage to target creature.|
Chandra, Flamecaller|Oath of the Gatewatch|104|M|{4}{R}{R}|Planeswalker - Chandra|||+1: Put two 3/1 red Elemental creature tokens with haste onto the battlefield. Exile them at the beginning of the next end step.$0: Discard all the cards in your hand, then draw that many cards plus one.$-X: Chandra, Flamecaller deals X damage to each creature.|
Embodiment of Fury|Oath of the Gatewatch|107|U|{3}{R}|Creature - Elemental|4|3|Trample$Land creatures you control have trample.$<i>Landfall</i> - Whenever a land enters the battlefield under your control, you may have target land you control become a 3/3 Elemental creature with haste until end of turn. It's still a land.|
Expedite|Oath of the Gatewatch|108|C|{R}|Instant|||Target creature gains haste until end of turn.$Draw a card.|
Fall of the Titans|Oath of the Gatewatch|109|R|{X}{X}{R}|Instant|||Surge {X}{R} <i>(You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Fall of the Titans deals X damage to each of up to two target creatures and/or players.|
Goblin Dark-Dwellers|Oath of the Gatewatch|110|R|{3}{R}{R}|Creature - Goblin|4|4|Menace$When Goblin Dark-Dwellers enters the battlefield, you may cast target instant or sorcery card with converted mana cost 3 or less from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead.|
Goblin Freerunner|Oath of the Gatewatch|111|C|{3}{R}|Creature - Goblin Warrior Ally|3|2|Surge {1}{R} <i>(You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Menace <i>(This creature can't be blocked expect by two or more creatures.)</i>
@ -28301,6 +28306,7 @@ Gladehart Cavalry|Oath of the Gatewatch|132|R|{5}{G}{G}|Creature - Elf Knight|6|
Nissa, Voice of Zendikar|Oath of the Gatewatch|138|M|{1}{G}{G}|Planeswalker - Nissa|||+1: Put a 0/1 green Plant creature token onto the battlefield.$-2: Put a +1/+1 counter on each creature you control.$-7: You gain X life and draw X cards, where X is the number of lands you control.|
Oath of Nissa|Oath of the Gatewatch|140|R|{G}|Legendary Enchantment|||When Oath of Nissa enters the battlefield, look at the top three cards of your library. You may reveal a creature, land, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order.$You may spend mana as though it were mana of any color to cast planeswalker spells.|
Sylvan Advocate|Oath of the Gatewatch|144|R|{1}{G}|Creature - Elf Druid Ally|2|3|Vigilance$As long as you control six or more lands, Sylvan Advocate and land creatures you control get +2/+2.|
Zendikar Resurgent|Oath of the Gatewatch|147|R|{5}{G}{G}|Enchantment|||Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced. (<i>The types of mana are white, blue, black, red, green, and colorless.)</i>$Whenever you cast a creature spell, draw a card.|
Flayer Drone|Oath of the Gatewatch|148|U|{1}{B}{R}|Creature - Eldrazi Drone|3|1|Devoid <i>(This card has no color.)</i>$First strike$Whenever another colorless creature enters the battlefield under your control, target opponent loses 1 life.|
Mindmelter|Oath of the Gatewatch|149|U|{1}{U}{B}|Creature - Eldrazi Drone|2|2|Devoid <i>(This card has no color.)</i>$Mindmelter can't be blocked.${3}{C}: Target opponent exiles a card from his or her hand. Activate this ability only any time you could cast a sorcery. <i>({C} represents colorless mana.)</i>|
Void Grafter|Oath of the Gatewatch|150|U|{1}{G}{U}|Creature - Eldrazi Drone|2|4|Devoid <i>(This card has no color.)</i>$Flash <i>(You may cast this spell any time you could cast an instant.)</i>$When Void Grafter enters the battlefield, another target creature you control gain hexproof until end of turn.|
@ -28315,6 +28321,7 @@ Relentless Hunter|Oath of the Gatewatch|158|U|{1}{R}{G}|Creature - Human Warrior
Stormchaser Mage|Oath of the Gatewatch|159|U|{U}{R}|Creature - Human Wizard|1|3|Flying, haste$Prowess <i>(Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)</i>|
Weapons Trainer|Oath of the Gatewatch|160|U|{R}{W}|Creature - Human Soldier Ally|3|2|Other creatures you control get +1/+0 as long as you control an Equipment.|
Bone Saw|Oath of the Gatewatch|161|C|{0}|Artifact - Equipment|||Equipped creature gets +1/+0.$Equip {1}|
Hedron Crawler|Oath of the Gatewatch|164|C|{2}|Artifact Creature - Construct|0|1|{T}: Add {C} to your mana pool.|
Seer's Lantern|Oath of the Gatewatch|165|C|{3}|Artifact|||{T}: Add {C} to your mana pool.${2}, {T}: Scry 1.|
Stoneforge Masterwork|Oath of the Gatewatch|166|R|{1}|Artifact - Equipment|||Equipped creature gets +1/+1 for each other creature you control that shares a creature type with it.$Equip {2}|
Cinder Barrens|Oath of the Gatewatch|168|U||Land|||Cinder Barrens enters the battlefield tapped.${T}: Add {B} or {R} to your mana pool.|