diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/RallytheForces.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/RallytheForces.java new file mode 100644 index 0000000000..f37fc3ba34 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/RallytheForces.java @@ -0,0 +1,67 @@ +/* + * 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.mirrodinbesieged; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.continious.BoostAllEffect; +import mage.abilities.effects.common.continious.GainAbilityAllEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterAttackingCreature; +import mage.filter.common.FilterCreaturePermanent; + +/** + * + * @author Loki + */ +public class RallytheForces extends CardImpl { + private static final FilterAttackingCreature filter = new FilterAttackingCreature("Attacking creatures"); + + public RallytheForces (UUID ownerId) { + super(ownerId, 73, "Rally the Forces", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); + this.expansionSetCode = "MBS"; + this.color.setRed(true); + this.getSpellAbility().addEffect(new BoostAllEffect(1, 1, Constants.Duration.EndOfTurn, filter, false)); + this.getSpellAbility().addEffect(new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Constants.Duration.EndOfTurn, filter, false)); + } + + public RallytheForces (final RallytheForces card) { + super(card); + } + + @Override + public RallytheForces copy() { + return new RallytheForces(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/ShimmerMyr.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/ShimmerMyr.java new file mode 100644 index 0000000000..1ccafe8ed9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/ShimmerMyr.java @@ -0,0 +1,108 @@ +/* + * 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.mirrodinbesieged; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.AsThoughEffectImpl; +import mage.abilities.keyword.FlashAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.game.Game; + +/** + * + * @author Loki + */ +public class ShimmerMyr extends CardImpl { + + public ShimmerMyr (UUID ownerId) { + super(ownerId, 129, "Shimmer Myr", Rarity.RARE, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); + this.expansionSetCode = "MBS"; + this.subtype.add("Myr"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + this.addAbility(FlashAbility.getInstance()); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ShimmerMyrEffect())); + } + + public ShimmerMyr (final ShimmerMyr card) { + super(card); + } + + @Override + public ShimmerMyr copy() { + return new ShimmerMyr(this); + } + +} + +class ShimmerMyrEffect extends AsThoughEffectImpl { + + public ShimmerMyrEffect() { + super(Constants.AsThoughEffectType.CAST, Constants.Duration.WhileOnBattlefield, Constants.Outcome.Benefit); + } + + public ShimmerMyrEffect(final ShimmerMyrEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public ShimmerMyrEffect copy() { + return new ShimmerMyrEffect(this); + } + + @Override + public boolean applies(UUID sourceId, Ability source, Game game) { + Card card = game.getCard(sourceId); + if (card != null) { + if (card.getCardType().contains(CardType.ARTIFACT) && card.getOwnerId().equals(source.getControllerId())) { + return true; + } + } + return false; + } + + @Override + public String getText(Ability source) { + return "You may cast artifact cards as though they had flash"; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ForcedWorship.java b/Mage.Sets/src/mage/sets/newphyrexia/ForcedWorship.java new file mode 100644 index 0000000000..46550a8d0d --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/ForcedWorship.java @@ -0,0 +1,114 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Loki + */ +public class ForcedWorship extends CardImpl { + + public ForcedWorship (UUID ownerId) { + super(ownerId, 11, "Forced Worship", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); + this.expansionSetCode = "NPH"; + this.subtype.add("Aura"); + this.color.setWhite(true); + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Constants.Outcome.Detriment)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ForcedWorshipEffect())); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ReturnToHandSourceEffect(), new ManaCostsImpl("{2}{W}"))); + } + + public ForcedWorship (final ForcedWorship card) { + super(card); + } + + @Override + public ForcedWorship copy() { + return new ForcedWorship(this); + } + +} + +class ForcedWorshipEffect extends RestrictionEffect { + + public ForcedWorshipEffect() { + super(Constants.Duration.WhileOnBattlefield); + } + + public ForcedWorshipEffect(final ForcedWorshipEffect effect) { + super(effect); + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + if (permanent.getAttachments().contains((source.getSourceId()))) { + return true; + } + return false; + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public ForcedWorshipEffect copy() { + return new ForcedWorshipEffect(this); + } + + @Override + public String getText(Ability source) { + return "Enchanted creature can't attack"; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/newphyrexia/RuthlessInvasion.java b/Mage.Sets/src/mage/sets/newphyrexia/RuthlessInvasion.java new file mode 100644 index 0000000000..38ba8c8abb --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/RuthlessInvasion.java @@ -0,0 +1,97 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.RestrictionEffect; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author Loki + */ +public class RuthlessInvasion extends CardImpl { + + public RuthlessInvasion (UUID ownerId) { + super(ownerId, 93, "Ruthless Invasion", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{3}{RP}"); + this.expansionSetCode = "NPH"; + this.color.setRed(true); + this.getSpellAbility().addEffect(new RuthlessInvasionEffect()); + } + + public RuthlessInvasion (final RuthlessInvasion card) { + super(card); + } + + @Override + public RuthlessInvasion copy() { + return new RuthlessInvasion(this); + } + +} + +class RuthlessInvasionEffect extends RestrictionEffect { + RuthlessInvasionEffect() { + super(Constants.Duration.EndOfTurn); + } + + RuthlessInvasionEffect(final RuthlessInvasionEffect effect) { + super(effect); + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + if (!permanent.getCardType().contains(CardType.ARTIFACT)) { + return true; + } + return false; + } + + @Override + public RuthlessInvasionEffect copy() { + return new RuthlessInvasionEffect(this); + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { + return false; + } + + @Override + public String getText(Ability source) { + return "Nonartifact creatures can't block this turn"; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShatteredAngel.java b/Mage.Sets/src/mage/sets/newphyrexia/ShatteredAngel.java new file mode 100644 index 0000000000..8f472ff3c1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShatteredAngel.java @@ -0,0 +1,103 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.ZoneChangeEvent; +import mage.game.permanent.Permanent; + +/** + * + * @author Loki + */ +public class ShatteredAngel extends CardImpl { + + public ShatteredAngel (UUID ownerId) { + super(ownerId, 23, "Shattered Angel", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + this.expansionSetCode = "NPH"; + this.subtype.add("Angel"); + this.color.setWhite(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(new ShatteredAngelTriggeredAbility()); + } + + public ShatteredAngel (final ShatteredAngel card) { + super(card); + } + + @Override + public ShatteredAngel copy() { + return new ShatteredAngel(this); + } + +} + +class ShatteredAngelTriggeredAbility extends TriggeredAbilityImpl { + ShatteredAngelTriggeredAbility() { + super(Constants.Zone.BATTLEFIELD, new GainLifeEffect(3), true); + } + + ShatteredAngelTriggeredAbility(final ShatteredAngelTriggeredAbility ability) { + super(ability); + } + + @Override + public ShatteredAngelTriggeredAbility copy() { + return new ShatteredAngelTriggeredAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.ZONE_CHANGE && ((ZoneChangeEvent)event).getToZone() == Constants.Zone.BATTLEFIELD) { + Permanent permanent = game.getPermanent(event.getTargetId()); + if (permanent != null && permanent.getCardType().contains(CardType.LAND) && game.getOpponents(this.controllerId).contains(permanent.getControllerId())) { + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever a land enters the battlefield under an opponent's control, you may gain 3 life."; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java b/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java new file mode 100644 index 0000000000..e6cec9c2c7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java @@ -0,0 +1,103 @@ +/* + * 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.worldwake; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.OneShotEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.filter.common.FilterLandCard; +import mage.game.Game; +import mage.target.common.TargetCardInHand; + +/** + * + * @author Loki + */ +public class WalkingAtlas extends CardImpl { + + public WalkingAtlas (UUID ownerId) { + super(ownerId, 131, "Walking Atlas", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); + this.expansionSetCode = "WWK"; + this.subtype.add("Construct"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new WalkingAtlasEffect(), new TapSourceCost()); + ability.addTarget(new TargetCardInHand(new FilterLandCard())); + this.addAbility(ability); + } + + public WalkingAtlas (final WalkingAtlas card) { + super(card); + } + + @Override + public WalkingAtlas copy() { + return new WalkingAtlas(this); + } + +} + +class WalkingAtlasEffect extends OneShotEffect { + WalkingAtlasEffect() { + super(Constants.Outcome.PutLandInPlay); + } + + WalkingAtlasEffect(final WalkingAtlasEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Card c = game.getCard(targetPointer.getFirst(source)); + if (c != null) { + c.moveToZone(Constants.Zone.BATTLEFIELD, source.getSourceId(), game, false); + return true; + } + return false; + } + + @Override + public WalkingAtlasEffect copy() { + return new WalkingAtlasEffect(this); + } + + @Override + public String getText(Ability source) { + return "You may put a land card from your hand onto the battlefield"; + } +} \ No newline at end of file diff --git a/Utils/gen-card.pl b/Utils/gen-card.pl index 251dc76f54..65c6666edd 100755 --- a/Utils/gen-card.pl +++ b/Utils/gen-card.pl @@ -213,6 +213,7 @@ $wizardstous{'V10'} = 'FVR'; $wizardstous{'DDF'} = 'DDF'; $wizardstous{'MBS'} = 'MBS'; $wizardstous{'NPH'} = 'NPH'; +$wizardstous{'CMD'} = 'CMD'; my %knownSets; $knownSets{'ARB'} = 'alarareborn';