From 78bcd1ab1d2696574d961088afbafa9dd1dce68f Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 12 Jul 2011 08:48:05 +0300 Subject: [PATCH] DST and misc --- .../championsofkamigawa/AkkiRockspeaker.java | 1 - .../championsofkamigawa/GhostlyPrison.java | 5 +- .../TakenoSamuraiGeneral.java | 134 ++++++++++++++++++ .../mage/sets/darksteel/AngelsFeather.java | 56 ++++++++ .../mage/sets/darksteel/ArcaneSpyglass.java | 84 +++++++++++ .../mage/sets/darksteel/BlinkmothNexus.java | 96 +++++++++++++ .../src/mage/sets/darksteel/Coretapper.java | 84 +++++++++++ .../src/mage/sets/darksteel/CrazedGoblin.java | 64 +++++++++ .../mage/sets/darksteel/DarksteelBrute.java | 76 ++++++++++ .../mage/sets/darksteel/DarksteelCitadel.java | 1 + .../mage/sets/darksteel/DarksteelForge.java | 71 ++++++++++ .../sets/darksteel/DarksteelGargoyle.java | 64 +++++++++ .../mage/sets/darksteel/DarksteelIngot.java | 65 +++++++++ .../src/mage/sets/darksteel/DemonsHorn.java | 54 +++++++ .../src/mage/sets/darksteel/DragonsClaw.java | 54 +++++++ .../src/mage/sets/darksteel/EssenceDrain.java | 63 ++++++++ .../src/mage/sets/darksteel/Fireball.java | 54 +++++++ .../src/mage/sets/darksteel/GrimclawBats.java | 72 ++++++++++ .../src/mage/sets/darksteel/Juggernaut.java | 54 +++++++ .../src/mage/sets/darksteel/KrakensEye.java | 54 +++++++ .../mage/sets/darksteel/KrarkClanStoker.java | 99 +++++++++++++ .../src/mage/sets/darksteel/LastWord.java | 63 ++++++++ .../mage/sets/darksteel/LoxodonMystic.java | 73 ++++++++++ .../src/mage/sets/darksteel/MagneticFlux.java | 70 +++++++++ .../mage/sets/darksteel/MirrodinsCore.java | 73 ++++++++++ .../src/mage/sets/darksteel/MyrMatrix.java | 78 ++++++++++ .../mage/sets/darksteel/MyrMoonvessel.java | 64 +++++++++ .../mage/sets/darksteel/NeurokProdigy.java | 79 +++++++++++ .../src/mage/sets/darksteel/Nourish.java | 59 ++++++++ .../src/mage/sets/darksteel/Oxidize.java | 70 +++++++++ .../src/mage/sets/darksteel/PteronGhost.java | 81 +++++++++++ .../mage/sets/darksteel/ScavengingScarab.java | 63 ++++++++ .../sets/darksteel/SlobadGoblinTinkerer.java | 87 ++++++++++++ .../src/mage/sets/darksteel/Soulscour.java | 104 ++++++++++++++ .../src/mage/sets/darksteel/SpawningPit.java | 86 +++++++++++ .../src/mage/sets/darksteel/Spincrusher.java | 72 ++++++++++ .../sets/darksteel/SteelshaperApprentice.java | 82 +++++++++++ .../sets/darksteel/SwordofFireandIce.java | 123 ++++++++++++++++ .../src/mage/sets/darksteel/TangleSpider.java | 65 +++++++++ .../src/mage/sets/darksteel/UrGolemsEye.java | 81 +++++++++++ .../mage/sets/darksteel/ViridianAcolyte.java | 78 ++++++++++ .../mage/sets/darksteel/ViridianZealot.java | 83 +++++++++++ .../mage/sets/darksteel/VoltaicConstruct.java | 79 +++++++++++ .../sets/darksteel/VulshokMorningstar.java | 64 +++++++++ .../sets/darksteel/WandoftheElements.java | 106 ++++++++++++++ .../src/mage/sets/darksteel/WurmsTooth.java | 53 +++++++ .../mage/sets/magic2010/AngelsFeather.java | 4 +- .../sets/mirrodinbesieged/InkmothNexus.java | 1 + .../mage/sets/newphyrexia/MentalMisstep.java | 72 ++++++++++ .../src/mage/sets/newphyrexia/NornsAnnex.java | 124 ++++++++++++++++ .../scarsofmirrodin/SwordofBodyandMind.java | 1 + .../costs/common/ReturnToHandSourceCost.java | 69 +++++++++ .../BecomesCreatureSourceEOTEffect.java | 6 +- 53 files changed, 3511 insertions(+), 7 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/championsofkamigawa/TakenoSamuraiGeneral.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/AngelsFeather.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/ArcaneSpyglass.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Coretapper.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/CrazedGoblin.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/DarksteelBrute.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/DarksteelForge.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/DarksteelGargoyle.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/DarksteelIngot.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/DemonsHorn.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/DragonsClaw.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/EssenceDrain.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Fireball.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/GrimclawBats.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Juggernaut.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/KrakensEye.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/KrarkClanStoker.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/LastWord.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/LoxodonMystic.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/MagneticFlux.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/MirrodinsCore.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/MyrMatrix.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/NeurokProdigy.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Nourish.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Oxidize.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/PteronGhost.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/ScavengingScarab.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/SlobadGoblinTinkerer.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Soulscour.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/SpawningPit.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/Spincrusher.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/SteelshaperApprentice.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/SwordofFireandIce.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/TangleSpider.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/ViridianAcolyte.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/ViridianZealot.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/VoltaicConstruct.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/VulshokMorningstar.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/WandoftheElements.java create mode 100644 Mage.Sets/src/mage/sets/darksteel/WurmsTooth.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/MentalMisstep.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/NornsAnnex.java create mode 100644 Mage/src/mage/abilities/costs/common/ReturnToHandSourceCost.java diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/AkkiRockspeaker.java b/Mage.Sets/src/mage/sets/championsofkamigawa/AkkiRockspeaker.java index d12db407ed..8b304575bc 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/AkkiRockspeaker.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/AkkiRockspeaker.java @@ -39,7 +39,6 @@ import mage.abilities.effects.common.ManaEffect; import mage.cards.CardImpl; /** - * * @author Loki, North */ public class AkkiRockspeaker extends CardImpl { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/GhostlyPrison.java b/Mage.Sets/src/mage/sets/championsofkamigawa/GhostlyPrison.java index 5365fc3444..e280868cf4 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/GhostlyPrison.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/GhostlyPrison.java @@ -87,11 +87,10 @@ class GhostlyPrisonReplacementEffect extends ReplacementEffectImpl { + + public TakenoSamuraiGeneral(UUID ownerId) { + super(ownerId, 46, "Takeno, Samurai General", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{W}"); + this.expansionSetCode = "CHK"; + this.supertype.add("Legendary"); + this.subtype.add("Human"); + this.subtype.add("Samurai"); + this.color.setWhite(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + this.addAbility(new BushidoAbility(2)); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new TakenoSamuraiGeneralEffect())); + } + + public TakenoSamuraiGeneral(final TakenoSamuraiGeneral card) { + super(card); + } + + @Override + public TakenoSamuraiGeneral copy() { + return new TakenoSamuraiGeneral(this); + } + +} + +class TakenoSamuraiGeneralEffect extends ContinuousEffectImpl { + private static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); + + static { + filter.getSubtype().add("Samurai"); + filter.setScopeSubtype(Filter.ComparisonScope.Any); + } + + public TakenoSamuraiGeneralEffect() { + super(Constants.Duration.WhileOnBattlefield, Constants.Layer.PTChangingEffects_7, Constants.SubLayer.ModifyPT_7c, Constants.Outcome.BoostCreature); + } + + public TakenoSamuraiGeneralEffect(final TakenoSamuraiGeneralEffect effect) { + super(effect); + } + + @Override + public TakenoSamuraiGeneralEffect copy() { + return new TakenoSamuraiGeneralEffect(this); + } + + @Override + public void init(Ability source, Game game) { + super.init(source, game); + if (this.affectedObjectsSet) { + for (Permanent perm: game.getBattlefield().getAllActivePermanents(filter, source.getControllerId())) { + if (!perm.getId().equals(source.getSourceId())) { + for (Ability ability : perm.getAbilities()) { + if (ability instanceof BushidoAbility) { + objects.add(perm.getId()); + } + } + } + } + } + } + + @Override + public boolean apply(Game game, Ability source) { + for (Permanent perm: game.getBattlefield().getAllActivePermanents(filter, source.getControllerId())) { + if (!this.affectedObjectsSet || objects.contains(perm.getId())) { + if (!perm.getId().equals(source.getSourceId())) { + for (Ability ability : perm.getAbilities()) { + if (ability instanceof BushidoAbility) { + perm.addPower(((BushidoAbility) ability).getValue()); + perm.addToughness(((BushidoAbility) ability).getValue()); + } + } + } + } + } + return true; + } + + @Override + public String getText(Ability source) { + return "Each other Samurai creature you control gets +1/+1 for each point of bushido it has"; + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/AngelsFeather.java b/Mage.Sets/src/mage/sets/darksteel/AngelsFeather.java new file mode 100644 index 0000000000..0a1d159034 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/AngelsFeather.java @@ -0,0 +1,56 @@ + +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * + * @author Loki + */ + +public class AngelsFeather extends mage.sets.tenth.AngelsFeather { + + public AngelsFeather(UUID ownerId) { + super(ownerId); + this.cardNumber = 92; + this.expansionSetCode = "DST"; + } + + public AngelsFeather(final AngelsFeather card) { + super(card); + } + + @Override + public AngelsFeather copy() { + return new AngelsFeather(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/ArcaneSpyglass.java b/Mage.Sets/src/mage/sets/darksteel/ArcaneSpyglass.java new file mode 100644 index 0000000000..ddefd01cdc --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/ArcaneSpyglass.java @@ -0,0 +1,84 @@ +/* + * 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.darksteel; + +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.costs.common.RemoveCountersSourceCost; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardControllerEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.counters.common.ChargeCounter; +import mage.filter.Filter; +import mage.filter.common.FilterControlledPermanent; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author Loki + */ +public class ArcaneSpyglass extends CardImpl { + + private final static FilterControlledPermanent filter = new FilterControlledPermanent("a land"); + + static { + filter.getCardType().add(CardType.LAND); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public ArcaneSpyglass (UUID ownerId) { + super(ownerId, 93, "Arcane Spyglass", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "DST"; + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new DrawCardControllerEffect(1), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); + ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance())); + this.addAbility(ability); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new DrawCardControllerEffect(1), new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(3)))); + } + + public ArcaneSpyglass (final ArcaneSpyglass card) { + super(card); + } + + @Override + public ArcaneSpyglass copy() { + return new ArcaneSpyglass(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java b/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java new file mode 100644 index 0000000000..eef6cd9b8d --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java @@ -0,0 +1,96 @@ +/* + * 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.darksteel; + +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.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect; +import mage.abilities.effects.common.continious.BoostTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.game.permanent.token.Token; +import mage.target.TargetPermanent; + +/** + * @author Loki + */ +public class BlinkmothNexus extends CardImpl { + + private final static FilterPermanent filter = new FilterPermanent("Blinkmoth"); + + static { + filter.getSubtype().add("Blinkmoth"); + filter.setScopeSubtype(Filter.ComparisonScope.Any); + } + + public BlinkmothNexus(UUID ownerId) { + super(ownerId, 163, "Blinkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "DST"; + this.addAbility(new ColorlessManaAbility()); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new BlinkmothNexusToken(), "land"), new GenericManaCost(1))); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Constants.Duration.EndOfTurn), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + + } + + public BlinkmothNexus(final BlinkmothNexus card) { + super(card); + } + + @Override + public BlinkmothNexus copy() { + return new BlinkmothNexus(this); + } + +} + +class BlinkmothNexusToken extends Token { + public BlinkmothNexusToken() { + super("Blinkmoth", "1/1 Blinkmoth artifact creature with flying"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Blinkmoth"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/Coretapper.java b/Mage.Sets/src/mage/sets/darksteel/Coretapper.java new file mode 100644 index 0000000000..950b688a96 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Coretapper.java @@ -0,0 +1,84 @@ +/* + * 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.darksteel; + +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.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.counters.common.ChargeCounter; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.target.TargetPermanent; + +/** + * @author Loki + */ +public class Coretapper extends CardImpl { + + private final static FilterPermanent filter = new FilterPermanent("artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public Coretapper(UUID ownerId) { + super(ownerId, 107, "Coretapper", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); + this.expansionSetCode = "DST"; + this.subtype.add("Myr"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + Ability firstAbility = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); + firstAbility.addTarget(new TargetPermanent(filter)); + this.addAbility(firstAbility); + Ability secondAbility = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.CHARGE.createInstance(2)), new SacrificeSourceCost()); + secondAbility.addTarget(new TargetPermanent(filter)); + this.addAbility(secondAbility); + } + + public Coretapper(final Coretapper card) { + super(card); + } + + @Override + public Coretapper copy() { + return new Coretapper(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/CrazedGoblin.java b/Mage.Sets/src/mage/sets/darksteel/CrazedGoblin.java new file mode 100644 index 0000000000..274fb7a443 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/CrazedGoblin.java @@ -0,0 +1,64 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.AttacksEachTurnStaticAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class CrazedGoblin extends CardImpl { + + public CrazedGoblin(UUID ownerId) { + super(ownerId, 56, "Crazed Goblin", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}"); + this.expansionSetCode = "DST"; + this.subtype.add("Goblin"); + this.subtype.add("Warrior"); + this.color.setRed(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + this.addAbility(new AttacksEachTurnStaticAbility()); + } + + public CrazedGoblin(final CrazedGoblin card) { + super(card); + } + + @Override + public CrazedGoblin copy() { + return new CrazedGoblin(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelBrute.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelBrute.java new file mode 100644 index 0000000000..508c32ae88 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelBrute.java @@ -0,0 +1,76 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.game.permanent.token.Token; + +/** + * + * @author Loki + */ +public class DarksteelBrute extends CardImpl { + + public DarksteelBrute (UUID ownerId) { + super(ownerId, 108, "Darksteel Brute", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "DST"; + this.addAbility(IndestructibleAbility.getInstance()); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new DarksteelBruteToken(), ""), new GenericManaCost(3))); + } + + public DarksteelBrute (final DarksteelBrute card) { + super(card); + } + + @Override + public DarksteelBrute copy() { + return new DarksteelBrute(this); + } + +} + +class DarksteelBruteToken extends Token { + public DarksteelBruteToken() { + super("", "2/2 Beast artifact creature"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java index a36bde5dcf..fb51e492c1 100644 --- a/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java +++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java @@ -40,6 +40,7 @@ import mage.cards.CardImpl; * @author Loki */ public class DarksteelCitadel extends CardImpl { + public DarksteelCitadel (UUID ownerId) { super(ownerId, 164, "Darksteel Citadel", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.LAND}, null); this.expansionSetCode = "DST"; diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelForge.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelForge.java new file mode 100644 index 0000000000..aef0e7e416 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelForge.java @@ -0,0 +1,71 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continious.GainAbilityControlledEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.common.FilterControlledPermanent; + +/** + * @author Loki + */ +public class DarksteelForge extends CardImpl { + + private final static FilterControlledPermanent filter = new FilterControlledPermanent("Artifacts"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public DarksteelForge(UUID ownerId) { + super(ownerId, 110, "Darksteel Forge", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{9}"); + this.expansionSetCode = "DST"; + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Constants.Duration.WhileOnBattlefield, filter, false))); + + } + + public DarksteelForge(final DarksteelForge card) { + super(card); + } + + @Override + public DarksteelForge copy() { + return new DarksteelForge(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelGargoyle.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelGargoyle.java new file mode 100644 index 0000000000..b350337873 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelGargoyle.java @@ -0,0 +1,64 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class DarksteelGargoyle extends CardImpl { + + public DarksteelGargoyle(UUID ownerId) { + super(ownerId, 111, "Darksteel Gargoyle", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}"); + this.expansionSetCode = "DST"; + this.subtype.add("Gargoyle"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(IndestructibleAbility.getInstance()); + } + + public DarksteelGargoyle(final DarksteelGargoyle card) { + super(card); + } + + @Override + public DarksteelGargoyle copy() { + return new DarksteelGargoyle(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelIngot.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelIngot.java new file mode 100644 index 0000000000..1a850075d8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelIngot.java @@ -0,0 +1,65 @@ +/* + * 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.darksteel; + +import mage.Constants; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.choices.ChoiceColor; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class DarksteelIngot extends CardImpl { + + public DarksteelIngot(UUID ownerId) { + super(ownerId, 112, "Darksteel Ingot", Constants.Rarity.COMMON, new Constants.CardType[]{Constants.CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "DST"; + this.addAbility(IndestructibleAbility.getInstance()); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new TapSourceCost()); + ability.addChoice(new ChoiceColor()); + this.addAbility(ability); + } + + public DarksteelIngot(final DarksteelIngot card) { + super(card); + } + + @Override + public DarksteelIngot copy() { + return new DarksteelIngot(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/darksteel/DemonsHorn.java b/Mage.Sets/src/mage/sets/darksteel/DemonsHorn.java new file mode 100644 index 0000000000..5be015bcb0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/DemonsHorn.java @@ -0,0 +1,54 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class DemonsHorn extends mage.sets.tenth.DemonsHorn { + + public DemonsHorn(UUID ownerId) { + super(ownerId); + this.cardNumber = 116; + this.expansionSetCode = "DST"; + } + + public DemonsHorn(final DemonsHorn card) { + super(card); + } + + @Override + public DemonsHorn copy() { + return new DemonsHorn(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/DragonsClaw.java b/Mage.Sets/src/mage/sets/darksteel/DragonsClaw.java new file mode 100644 index 0000000000..baef997ab5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/DragonsClaw.java @@ -0,0 +1,54 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class DragonsClaw extends mage.sets.tenth.DragonsClaw { + + public DragonsClaw(UUID ownerId) { + super(ownerId); + this.cardNumber = 117; + this.expansionSetCode = "DST"; + } + + public DragonsClaw(final DragonsClaw card) { + super(card); + } + + @Override + public DragonsClaw copy() { + return new DragonsClaw(this); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/darksteel/EssenceDrain.java b/Mage.Sets/src/mage/sets/darksteel/EssenceDrain.java new file mode 100644 index 0000000000..9daacc0100 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/EssenceDrain.java @@ -0,0 +1,63 @@ +/* + * 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.darksteel; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author Loki + */ +public class EssenceDrain extends CardImpl { + + public EssenceDrain (UUID ownerId) { + super(ownerId, 43, "Essence Drain", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{4}{B}"); + this.expansionSetCode = "DST"; + this.color.setBlack(true); + this.getSpellAbility().addEffect(new DamageTargetEffect(3)); + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); + this.getSpellAbility().addEffect(new GainLifeEffect(3)); + } + + public EssenceDrain (final EssenceDrain card) { + super(card); + } + + @Override + public EssenceDrain copy() { + return new EssenceDrain(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/Fireball.java b/Mage.Sets/src/mage/sets/darksteel/Fireball.java new file mode 100644 index 0000000000..7c296da4fc --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Fireball.java @@ -0,0 +1,54 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class Fireball extends mage.sets.magic2010.Fireball { + + public Fireball(UUID ownerId) { + super(ownerId); + this.cardNumber = 60; + this.expansionSetCode = "DST"; + } + + public Fireball(final Fireball card) { + super(card); + } + + @Override + public Fireball copy() { + return new Fireball(this); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/darksteel/GrimclawBats.java b/Mage.Sets/src/mage/sets/darksteel/GrimclawBats.java new file mode 100644 index 0000000000..4ee36f75ce --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/GrimclawBats.java @@ -0,0 +1,72 @@ +/* + * 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.darksteel; + +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.PayLifeCost; +import mage.abilities.costs.mana.ColoredManaCost; +import mage.abilities.effects.common.continious.BoostSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class GrimclawBats extends CardImpl { + + public GrimclawBats(UUID ownerId) { + super(ownerId, 45, "Grimclaw Bats", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); + this.expansionSetCode = "DST"; + this.subtype.add("Bat"); + this.color.setBlack(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Constants.Duration.EndOfTurn), new ColoredManaCost(Constants.ColoredManaSymbol.B)); + ability.addCost(new PayLifeCost(1)); + this.addAbility(ability); + } + + public GrimclawBats(final GrimclawBats card) { + super(card); + } + + @Override + public GrimclawBats copy() { + return new GrimclawBats(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/Juggernaut.java b/Mage.Sets/src/mage/sets/darksteel/Juggernaut.java new file mode 100644 index 0000000000..5067d69ee3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Juggernaut.java @@ -0,0 +1,54 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class Juggernaut extends mage.sets.tenth.Juggernaut { + + public Juggernaut(UUID ownerId) { + super(ownerId); + this.cardNumber = 125; + this.expansionSetCode = "DST"; + } + + public Juggernaut(final Juggernaut card) { + super(card); + } + + @Override + public Juggernaut copy() { + return new Juggernaut(this); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/darksteel/KrakensEye.java b/Mage.Sets/src/mage/sets/darksteel/KrakensEye.java new file mode 100644 index 0000000000..6b02e9498f --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/KrakensEye.java @@ -0,0 +1,54 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class KrakensEye extends mage.sets.tenth.KrakensEye { + + public KrakensEye(UUID ownerId) { + super(ownerId); + this.cardNumber = 126; + this.expansionSetCode = "DST"; + } + + public KrakensEye(final KrakensEye card) { + super(card); + } + + @Override + public KrakensEye copy() { + return new KrakensEye(this); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/darksteel/KrarkClanStoker.java b/Mage.Sets/src/mage/sets/darksteel/KrarkClanStoker.java new file mode 100644 index 0000000000..dd35f520b5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/KrarkClanStoker.java @@ -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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.mana.BasicManaAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.common.FilterControlledPermanent; +import mage.target.common.TargetControlledPermanent; + +/** + * @author Loki + */ +public class KrarkClanStoker extends CardImpl { + + private final static FilterControlledPermanent filter = new FilterControlledPermanent("an artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public KrarkClanStoker(UUID ownerId) { + super(ownerId, 65, "Krark-Clan Stoker", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "DST"; + this.subtype.add("Goblin"); + this.subtype.add("Shaman"); + this.color.setRed(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + Ability ability = new KrarkClanStokerAbility(); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); + this.addAbility(ability); + } + + public KrarkClanStoker(final KrarkClanStoker card) { + super(card); + } + + @Override + public KrarkClanStoker copy() { + return new KrarkClanStoker(this); + } + +} + +class KrarkClanStokerAbility extends BasicManaAbility { + + public KrarkClanStokerAbility() { + super(new ManaEffect(new Mana(2, 0, 0, 0, 0, 0, 0))); + this.netMana.setRed(2); + } + + public KrarkClanStokerAbility(final KrarkClanStokerAbility ability) { + super(ability); + } + + @Override + public KrarkClanStokerAbility copy() { + return new KrarkClanStokerAbility(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/darksteel/LastWord.java b/Mage.Sets/src/mage/sets/darksteel/LastWord.java new file mode 100644 index 0000000000..e87b952e30 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/LastWord.java @@ -0,0 +1,63 @@ +/* + * 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.darksteel; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.common.CantCounterAbility; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.cards.CardImpl; +import mage.target.TargetSpell; + +/** + * + * @author Loki + */ +public class LastWord extends CardImpl { + + public LastWord (UUID ownerId) { + super(ownerId, 23, "Last Word", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{2}{U}{U}"); + this.expansionSetCode = "DST"; + this.color.setBlue(true); + this.addAbility(new CantCounterAbility()); + this.getSpellAbility().addEffect(new CounterTargetEffect()); + this.getSpellAbility().addTarget(new TargetSpell()); + } + + public LastWord (final LastWord card) { + super(card); + } + + @Override + public LastWord copy() { + return new LastWord(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/LoxodonMystic.java b/Mage.Sets/src/mage/sets/darksteel/LoxodonMystic.java new file mode 100644 index 0000000000..b69eee9856 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/LoxodonMystic.java @@ -0,0 +1,73 @@ +/* + * 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.darksteel; + +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.costs.mana.ColoredManaCost; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.target.common.TargetCreaturePermanent; + +/** + * @author Loki + */ +public class LoxodonMystic extends CardImpl { + + public LoxodonMystic(UUID ownerId) { + super(ownerId, 7, "Loxodon Mystic", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + this.expansionSetCode = "DST"; + this.subtype.add("Elephant"); + this.subtype.add("Cleric"); + this.color.setWhite(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new TapTargetEffect(), new ColoredManaCost(Constants.ColoredManaSymbol.W)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public LoxodonMystic(final LoxodonMystic card) { + super(card); + } + + @Override + public LoxodonMystic copy() { + return new LoxodonMystic(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/MagneticFlux.java b/Mage.Sets/src/mage/sets/darksteel/MagneticFlux.java new file mode 100644 index 0000000000..a083edabb9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/MagneticFlux.java @@ -0,0 +1,70 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.continious.GainAbilityControlledEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.common.FilterControlledPermanent; + +/** + * @author Loki + */ +public class MagneticFlux extends CardImpl { + + private final static FilterControlledPermanent filter = new FilterControlledPermanent("Artifact creatures"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.getCardType().add(CardType.CREATURE); + } + + public MagneticFlux(UUID ownerId) { + super(ownerId, 25, "Magnetic Flux", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{U}"); + this.expansionSetCode = "DST"; + this.color.setBlue(true); + this.getSpellAbility().addEffect(new GainAbilityControlledEffect(FlyingAbility.getInstance(), Constants.Duration.EndOfTurn, filter, false)); + } + + public MagneticFlux(final MagneticFlux card) { + super(card); + } + + @Override + public MagneticFlux copy() { + return new MagneticFlux(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/MirrodinsCore.java b/Mage.Sets/src/mage/sets/darksteel/MirrodinsCore.java new file mode 100644 index 0000000000..5521192a2d --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/MirrodinsCore.java @@ -0,0 +1,73 @@ +/* + * 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.darksteel; + +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.costs.common.RemoveCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.counters.common.ChargeCounter; + +/** + * + * @author Loki + */ +public class MirrodinsCore extends CardImpl { + + public MirrodinsCore (UUID ownerId) { + super(ownerId, 165, "Mirrodin's Core", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DST"; + this.addAbility(new ColorlessManaAbility()); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost())); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new TapSourceCost()); + ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); + this.addAbility(ability); + + } + + public MirrodinsCore (final MirrodinsCore card) { + super(card); + } + + @Override + public MirrodinsCore copy() { + return new MirrodinsCore(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/MyrMatrix.java b/Mage.Sets/src/mage/sets/darksteel/MyrMatrix.java new file mode 100644 index 0000000000..055f184320 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/MyrMatrix.java @@ -0,0 +1,78 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continious.BoostAllEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.permanent.token.MyrToken; + +/** + * + * @author Loki + */ +public class MyrMatrix extends CardImpl { + + private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Myr"); + + static { + filter.getSubtype().add("Myr"); + filter.setScopeSubtype(Filter.ComparisonScope.Any); + } + + public MyrMatrix (UUID ownerId) { + super(ownerId, 132, "Myr Matrix", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{5}"); + this.expansionSetCode = "DST"; + this.addAbility(IndestructibleAbility.getInstance()); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Constants.Duration.WhileOnBattlefield, filter, false))); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new CreateTokenEffect(new MyrToken()), new GenericManaCost(5))); + + } + + public MyrMatrix (final MyrMatrix card) { + super(card); + } + + @Override + public MyrMatrix copy() { + return new MyrMatrix(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java b/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java new file mode 100644 index 0000000000..f77f6ffff6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java @@ -0,0 +1,64 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.Mana; +import mage.abilities.common.PutIntoGraveFromBattlefieldTriggeredAbility; +import mage.abilities.effects.common.ManaEffect; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class MyrMoonvessel extends CardImpl { + + public MyrMoonvessel(UUID ownerId) { + super(ownerId, 133, "Myr Moonvessel", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}"); + this.expansionSetCode = "DST"; + this.subtype.add("Myr"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + this.addAbility(new PutIntoGraveFromBattlefieldTriggeredAbility(new ManaEffect(new Mana(0, 0, 0, 0, 0, 1, 0)))); + } + + public MyrMoonvessel(final MyrMoonvessel card) { + super(card); + } + + @Override + public MyrMoonvessel copy() { + return new MyrMoonvessel(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/NeurokProdigy.java b/Mage.Sets/src/mage/sets/darksteel/NeurokProdigy.java new file mode 100644 index 0000000000..e7a38d4d2f --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/NeurokProdigy.java @@ -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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.DiscardTargetCost; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInHand; + +/** + * @author Loki + */ +public class NeurokProdigy extends CardImpl { + + private final static FilterCard filter = new FilterCard("an artifact card"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public NeurokProdigy(UUID ownerId) { + super(ownerId, 26, "Neurok Prodigy", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{U}"); + this.expansionSetCode = "DST"; + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.color.setBlue(true); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ReturnToHandSourceEffect(), new DiscardTargetCost(new TargetCardInHand(filter)))); + } + + public NeurokProdigy(final NeurokProdigy card) { + super(card); + } + + @Override + public NeurokProdigy copy() { + return new NeurokProdigy(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/Nourish.java b/Mage.Sets/src/mage/sets/darksteel/Nourish.java new file mode 100644 index 0000000000..794db58523 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Nourish.java @@ -0,0 +1,59 @@ +/* + * 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.darksteel; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class Nourish extends CardImpl { + + public Nourish (UUID ownerId) { + super(ownerId, 78, "Nourish", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{G}{G}"); + this.expansionSetCode = "DST"; + this.color.setGreen(true); + this.getSpellAbility().addEffect(new GainLifeEffect(6)); + } + + public Nourish (final Nourish card) { + super(card); + } + + @Override + public Nourish copy() { + return new Nourish(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/Oxidize.java b/Mage.Sets/src/mage/sets/darksteel/Oxidize.java new file mode 100644 index 0000000000..c8b070309e --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Oxidize.java @@ -0,0 +1,70 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.target.TargetPermanent; + +/** + * @author Loki + */ +public class Oxidize extends CardImpl { + + private final static FilterPermanent filter = new FilterPermanent("artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public Oxidize(UUID ownerId) { + super(ownerId, 79, "Oxidize", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{G}"); + this.expansionSetCode = "DST"; + this.color.setGreen(true); + this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); + this.getSpellAbility().addTarget(new TargetPermanent(filter)); + } + + public Oxidize(final Oxidize card) { + super(card); + } + + @Override + public Oxidize copy() { + return new Oxidize(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/PteronGhost.java b/Mage.Sets/src/mage/sets/darksteel/PteronGhost.java new file mode 100644 index 0000000000..fc561afc85 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/PteronGhost.java @@ -0,0 +1,81 @@ +/* + * 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.darksteel; + +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.SacrificeSourceCost; +import mage.abilities.effects.common.RegenerateTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.target.TargetPermanent; + +/** + * @author Loki + */ +public class PteronGhost extends CardImpl { + + private final static FilterPermanent filter = new FilterPermanent("artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public PteronGhost(UUID ownerId) { + super(ownerId, 10, "Pteron Ghost", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); + this.expansionSetCode = "DST"; + this.subtype.add("Spirit"); + this.color.setWhite(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new RegenerateTargetEffect(), new SacrificeSourceCost()); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + public PteronGhost(final PteronGhost card) { + super(card); + } + + @Override + public PteronGhost copy() { + return new PteronGhost(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/ScavengingScarab.java b/Mage.Sets/src/mage/sets/darksteel/ScavengingScarab.java new file mode 100644 index 0000000000..b492f349ff --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/ScavengingScarab.java @@ -0,0 +1,63 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.CantBlockAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class ScavengingScarab extends CardImpl { + + public ScavengingScarab(UUID ownerId) { + super(ownerId, 51, "Scavenging Scarab", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetCode = "DST"; + this.subtype.add("Insect"); + this.color.setBlack(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + this.addAbility(CantBlockAbility.getInstance()); + } + + public ScavengingScarab(final ScavengingScarab card) { + super(card); + } + + @Override + public ScavengingScarab copy() { + return new ScavengingScarab(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/SlobadGoblinTinkerer.java b/Mage.Sets/src/mage/sets/darksteel/SlobadGoblinTinkerer.java new file mode 100644 index 0000000000..5aa69334ac --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/SlobadGoblinTinkerer.java @@ -0,0 +1,87 @@ +/* + * 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.darksteel; + +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.SacrificeTargetCost; +import mage.abilities.effects.common.continious.GainAbilityTargetEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.target.TargetPermanent; +import mage.target.common.TargetControlledPermanent; + +/** + * @author Loki + */ +public class SlobadGoblinTinkerer extends CardImpl { + + private final static FilterPermanent filter = new FilterPermanent("artifact"); + private final static FilterControlledPermanent filterControlled = new FilterControlledPermanent("an artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + filterControlled.getCardType().add(CardType.ARTIFACT); + filterControlled.setScopeCardType(Filter.ComparisonScope.Any); + } + + public SlobadGoblinTinkerer(UUID ownerId) { + super(ownerId, 69, "Slobad, Goblin Tinkerer", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{R}"); + this.expansionSetCode = "DST"; + this.supertype.add("Legendary"); + this.subtype.add("Goblin"); + this.subtype.add("Artificer"); + this.color.setRed(true); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Constants.Duration.EndOfTurn), new SacrificeTargetCost(new TargetControlledPermanent(filterControlled))); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + public SlobadGoblinTinkerer(final SlobadGoblinTinkerer card) { + super(card); + } + + @Override + public SlobadGoblinTinkerer copy() { + return new SlobadGoblinTinkerer(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/Soulscour.java b/Mage.Sets/src/mage/sets/darksteel/Soulscour.java new file mode 100644 index 0000000000..93b3b8a9b6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Soulscour.java @@ -0,0 +1,104 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author Loki + */ +public class Soulscour extends CardImpl { + + public Soulscour (UUID ownerId) { + super(ownerId, 14, "Soulscour", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{7}{W}{W}{W}"); + this.expansionSetCode = "DST"; + this.color.setWhite(true); + this.getSpellAbility().addEffect(new SoulscourEffect()); + } + + public Soulscour (final Soulscour card) { + super(card); + } + + @Override + public Soulscour copy() { + return new Soulscour(this); + } + +} + + +class SoulscourEffect extends OneShotEffect { + + private final static FilterPermanent filter = new FilterPermanent(""); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.getNotCardType().add(true); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public SoulscourEffect() { + super(Constants.Outcome.DestroyPermanent); + } + + public SoulscourEffect(final SoulscourEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + for (Permanent permanent : game.getBattlefield().getAllActivePermanents(filter)) { + permanent.destroy(source.getId(), game, false); + } + return true; + } + + @Override + public SoulscourEffect copy() { + return new SoulscourEffect(this); + } + + @Override + public String getText(Ability source) { + return "Destroy all nonartifact permanents"; + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/SpawningPit.java b/Mage.Sets/src/mage/sets/darksteel/SpawningPit.java new file mode 100644 index 0000000000..a7102aed76 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/SpawningPit.java @@ -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.darksteel; + +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.RemoveCountersSourceCost; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.counters.common.ChargeCounter; +import mage.game.permanent.token.Token; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author Loki + */ +public class SpawningPit extends CardImpl { + + public SpawningPit (UUID ownerId) { + super(ownerId, 141, "Spawning Pit", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "DST"; + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddCountersSourceEffect(new ChargeCounter()), new SacrificeTargetCost(new TargetControlledCreaturePermanent()))); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new CreateTokenEffect(new SpawningPitToken()), new GenericManaCost(1)); + ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(2))); + this.addAbility(ability); + } + + public SpawningPit (final SpawningPit card) { + super(card); + } + + @Override + public SpawningPit copy() { + return new SpawningPit(this); + } + +} + +class SpawningPitToken extends Token { + public SpawningPitToken() { + super("Spawn", "2/2 colorless Spawn artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Spawn"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} + diff --git a/Mage.Sets/src/mage/sets/darksteel/Spincrusher.java b/Mage.Sets/src/mage/sets/darksteel/Spincrusher.java new file mode 100644 index 0000000000..36c9bd478f --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/Spincrusher.java @@ -0,0 +1,72 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.BlocksTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.effects.common.continious.GainAbilitySourceEffect; +import mage.abilities.effects.common.counter.AddCountersControllerEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.UnblockableAbility; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.counters.common.PlusOneCounter; + +/** + * @author Loki + */ +public class Spincrusher extends CardImpl { + + public Spincrusher(UUID ownerId) { + super(ownerId, 144, "Spincrusher", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); + this.expansionSetCode = "DST"; + this.subtype.add("Construct"); + this.power = new MageInt(0); + this.toughness = new MageInt(2); + this.addAbility(new BlocksTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false)); + this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new GainAbilitySourceEffect(UnblockableAbility.getInstance(), Constants.Duration.EndOfTurn), new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)))); + } + + public Spincrusher(final Spincrusher card) { + super(card); + } + + @Override + public Spincrusher copy() { + return new Spincrusher(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/SteelshaperApprentice.java b/Mage.Sets/src/mage/sets/darksteel/SteelshaperApprentice.java new file mode 100644 index 0000000000..2a22011844 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/SteelshaperApprentice.java @@ -0,0 +1,82 @@ +/* + * 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.darksteel; + +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.ReturnToHandSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ColoredManaCost; +import mage.abilities.effects.common.search.SearchLibraryRevealPutInHandEffect; +import mage.cards.CardImpl; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInLibrary; + +/** + * @author Loki + */ +public class SteelshaperApprentice extends CardImpl { + + private static final FilterCard filter = new FilterCard("Equipment card"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.getSubtype().add("Equipment"); + } + + public SteelshaperApprentice(UUID ownerId) { + super(ownerId, 15, "Steelshaper Apprentice", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); + this.expansionSetCode = "DST"; + this.subtype.add("Human"); + this.subtype.add("Soldier"); + this.color.setWhite(true); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new SearchLibraryRevealPutInHandEffect(new TargetCardInLibrary(1, 1, filter)), new ColoredManaCost(Constants.ColoredManaSymbol.W)); + ability.addCost(new TapSourceCost()); + ability.addCost(new ReturnToHandSourceCost()); + this.addAbility(ability); + } + + public SteelshaperApprentice(final SteelshaperApprentice card) { + super(card); + } + + @Override + public SteelshaperApprentice copy() { + return new SteelshaperApprentice(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/SwordofFireandIce.java b/Mage.Sets/src/mage/sets/darksteel/SwordofFireandIce.java new file mode 100644 index 0000000000..15fd1eedac --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/SwordofFireandIce.java @@ -0,0 +1,123 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.DrawCardControllerEffect; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterCard; +import mage.game.Game; +import mage.game.events.DamagedPlayerEvent; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * @author Loki + */ +public class SwordofFireandIce extends CardImpl { + + private static FilterCard filter = new FilterCard("red and from blue"); + + static { + filter.setUseColor(true); + filter.getColor().setRed(true); + filter.getColor().setGreen(true); + filter.setScopeColor(Filter.ComparisonScope.Any); + } + + + public SwordofFireandIce(UUID ownerId) { + super(ownerId, 148, "Sword of Fire and Ice", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "DST"; + this.subtype.add("Equipment"); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new ProtectionAbility(filter), Constants.AttachmentType.EQUIPMENT))); + this.addAbility(new SwordofFireandIceAbility()); + this.addAbility(new EquipAbility(Constants.Outcome.AddAbility, new GenericManaCost(2))); + } + + public SwordofFireandIce(final SwordofFireandIce card) { + super(card); + } + + @Override + public SwordofFireandIce copy() { + return new SwordofFireandIce(this); + } + +} + +class SwordofFireandIceAbility extends TriggeredAbilityImpl { + + public SwordofFireandIceAbility() { + super(Constants.Zone.BATTLEFIELD, new DamageTargetEffect(2)); + this.addEffect(new DrawCardControllerEffect(1)); + this.addTarget(new TargetCreatureOrPlayer()); + } + + public SwordofFireandIceAbility(final SwordofFireandIceAbility ability) { + super(ability); + } + + @Override + public SwordofFireandIceAbility copy() { + return new SwordofFireandIceAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event instanceof DamagedPlayerEvent) { + DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; + Permanent p = game.getPermanent(event.getSourceId()); + if (damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever equipped creature deals combat damage to a player, Sword of Fire and Ice deals 2 damage to target creature or player and you draw a card."; + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/TangleSpider.java b/Mage.Sets/src/mage/sets/darksteel/TangleSpider.java new file mode 100644 index 0000000000..ab6f50f89c --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/TangleSpider.java @@ -0,0 +1,65 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.ReachAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class TangleSpider extends CardImpl { + + public TangleSpider(UUID ownerId) { + super(ownerId, 85, "Tangle Spider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); + this.expansionSetCode = "DST"; + this.subtype.add("Spider"); + this.color.setGreen(true); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + this.addAbility(FlashAbility.getInstance()); + this.addAbility(ReachAbility.getInstance()); + } + + public TangleSpider(final TangleSpider card) { + super(card); + } + + @Override + public TangleSpider copy() { + return new TangleSpider(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java b/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java new file mode 100644 index 0000000000..4c62d41a23 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java @@ -0,0 +1,81 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.mana.BasicManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class UrGolemsEye extends CardImpl { + + public UrGolemsEye (UUID ownerId) { + super(ownerId, 155, "Ur-Golem's Eye", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "DST"; + this.addAbility(new UrGolemsEyeAbility()); + } + + public UrGolemsEye (final UrGolemsEye card) { + super(card); + } + + @Override + public UrGolemsEye copy() { + return new UrGolemsEye(this); + } + +} + +class UrGolemsEyeAbility extends BasicManaAbility { + + public UrGolemsEyeAbility() { + super(new ManaEffect(new Mana(0, 0, 0, 0, 0, 2, 0))); + this.netMana.setColorless(2); + } + + public UrGolemsEyeAbility(final UrGolemsEyeAbility ability) { + super(ability); + } + + @Override + public UrGolemsEyeAbility copy() { + return new UrGolemsEyeAbility(this); + } +} + diff --git a/Mage.Sets/src/mage/sets/darksteel/ViridianAcolyte.java b/Mage.Sets/src/mage/sets/darksteel/ViridianAcolyte.java new file mode 100644 index 0000000000..adf08ebff6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/ViridianAcolyte.java @@ -0,0 +1,78 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.mana.BasicManaAbility; +import mage.cards.CardImpl; +import mage.choices.ChoiceColor; + +/** + * @author Loki + */ +public class ViridianAcolyte extends CardImpl { + + public ViridianAcolyte(UUID ownerId) { + super(ownerId, 89, "Viridian Acolyte", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetCode = "DST"; + this.subtype.add("Elf"); + this.subtype.add("Shaman"); + this.color.setGreen(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addChoice(new ChoiceColor()); + this.addAbility(ability); + + } + + public ViridianAcolyte(final ViridianAcolyte card) { + super(card); + } + + @Override + public ViridianAcolyte copy() { + return new ViridianAcolyte(this); + } + +} + diff --git a/Mage.Sets/src/mage/sets/darksteel/ViridianZealot.java b/Mage.Sets/src/mage/sets/darksteel/ViridianZealot.java new file mode 100644 index 0000000000..0dd26ff86c --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/ViridianZealot.java @@ -0,0 +1,83 @@ +/* + * 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.darksteel; + +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.SacrificeSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.target.TargetPermanent; + +/** + * @author Loki + */ +public class ViridianZealot extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("artifact or enchantment"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.getCardType().add(CardType.ENCHANTMENT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public ViridianZealot(UUID ownerId) { + super(ownerId, 90, "Viridian Zealot", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{G}{G}"); + this.expansionSetCode = "DST"; + this.subtype.add("Elf"); + this.subtype.add("Warrior"); + this.color.setGreen(true); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{1}{G}")); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + public ViridianZealot(final ViridianZealot card) { + super(card); + } + + @Override + public ViridianZealot copy() { + return new ViridianZealot(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/VoltaicConstruct.java b/Mage.Sets/src/mage/sets/darksteel/VoltaicConstruct.java new file mode 100644 index 0000000000..acd0f51d19 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/VoltaicConstruct.java @@ -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.darksteel; + +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.mana.GenericManaCost; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * @author Loki + */ +public class VoltaicConstruct extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public VoltaicConstruct(UUID ownerId) { + super(ownerId, 156, "Voltaic Construct", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); + this.expansionSetCode = "DST"; + this.subtype.add("Golem"); + this.subtype.add("Construct"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new UntapTargetEffect(), new GenericManaCost(2)); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public VoltaicConstruct(final VoltaicConstruct card) { + super(card); + } + + @Override + public VoltaicConstruct copy() { + return new VoltaicConstruct(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/VulshokMorningstar.java b/Mage.Sets/src/mage/sets/darksteel/VulshokMorningstar.java new file mode 100644 index 0000000000..ddc003fa2c --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/VulshokMorningstar.java @@ -0,0 +1,64 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class VulshokMorningstar extends CardImpl { + + public VulshokMorningstar(UUID ownerId) { + super(ownerId, 157, "Vulshok Morningstar", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "DST"; + this.subtype.add("Equipment"); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); + this.addAbility(new EquipAbility(Constants.Outcome.AddAbility, new GenericManaCost(2))); + } + + public VulshokMorningstar(final VulshokMorningstar card) { + super(card); + } + + @Override + public VulshokMorningstar copy() { + return new VulshokMorningstar(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/WandoftheElements.java b/Mage.Sets/src/mage/sets/darksteel/WandoftheElements.java new file mode 100644 index 0000000000..dd0067e3cd --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/WandoftheElements.java @@ -0,0 +1,106 @@ +/* + * 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.darksteel; + +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.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterControlledPermanent; +import mage.game.permanent.token.Token; +import mage.target.common.TargetControlledPermanent; + +/** + * @author Loki + */ +public class WandoftheElements extends CardImpl { + + private static final FilterControlledPermanent islandFilter = new FilterControlledPermanent("an Island"); + private static final FilterControlledPermanent mountainFilter = new FilterControlledPermanent("a Mountain"); + + static { + islandFilter.getName().add("Island"); + mountainFilter.getName().add("Mountain"); + } + + public WandoftheElements(UUID ownerId) { + super(ownerId, 158, "Wand of the Elements", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "DST"; + Ability firstAbility = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new CreateTokenEffect(new WandoftheElementsFirstToken()), new TapSourceCost()); + firstAbility.addCost(new SacrificeTargetCost(new TargetControlledPermanent(islandFilter))); + this.addAbility(firstAbility); + Ability secondAbility = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new CreateTokenEffect(new WandoftheElementsSecondToken()), new TapSourceCost()); + secondAbility.addCost(new SacrificeTargetCost(new TargetControlledPermanent(mountainFilter))); + this.addAbility(secondAbility); + + } + + public WandoftheElements(final WandoftheElements card) { + super(card); + } + + @Override + public WandoftheElements copy() { + return new WandoftheElements(this); + } +} + +class WandoftheElementsFirstToken extends Token { + public WandoftheElementsFirstToken() { + super("", "2/2 blue Elemental creature token with flying"); + cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + this.color.setBlue(true); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + } +} + + +class WandoftheElementsSecondToken extends Token { + public WandoftheElementsSecondToken() { + super("", "3/3 red Elemental creature token"); + cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + this.color.setRed(true); + power = new MageInt(3); + toughness = new MageInt(3); + } +} + diff --git a/Mage.Sets/src/mage/sets/darksteel/WurmsTooth.java b/Mage.Sets/src/mage/sets/darksteel/WurmsTooth.java new file mode 100644 index 0000000000..244678b700 --- /dev/null +++ b/Mage.Sets/src/mage/sets/darksteel/WurmsTooth.java @@ -0,0 +1,53 @@ +/* + * 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.darksteel; + +import java.util.UUID; + +/** + * @author Loki + */ + +public class WurmsTooth extends mage.sets.tenth.WurmsTooth { + + public WurmsTooth(UUID ownerId) { + super(ownerId); + this.cardNumber = 162; + this.expansionSetCode = "DST"; + } + + public WurmsTooth(final WurmsTooth card) { + super(card); + } + + @Override + public WurmsTooth copy() { + return new WurmsTooth(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java b/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java index 1d842bb8ea..b99dd93d6a 100644 --- a/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java +++ b/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java @@ -32,12 +32,12 @@ import java.util.UUID; /** * - * @author BetaSteward_at_googlemail.com + * @author BetaSteward_at_googlemail.com, Loki */ public class AngelsFeather extends mage.sets.tenth.AngelsFeather { public AngelsFeather(UUID ownerId) { - super(ownerId);this.cardNumber = 0; + super(ownerId); this.cardNumber = 206; this.expansionSetCode = "M10"; } diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java index d3d1b8b5ef..c68a0cb557 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java @@ -73,6 +73,7 @@ class InkmothNexusToken extends Token { super("Blinkmoth", "a 1/1 Blinkmoth artifact creature with flying and infect"); cardType.add(CardType.ARTIFACT); cardType.add(CardType.CREATURE); + this.subtype.add("Blinkmoth"); power = new MageInt(1); toughness = new MageInt(1); this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/MentalMisstep.java b/Mage.Sets/src/mage/sets/newphyrexia/MentalMisstep.java new file mode 100644 index 0000000000..b55720c5f7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/MentalMisstep.java @@ -0,0 +1,72 @@ +/* + * 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.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterCard; +import mage.filter.FilterPermanent; +import mage.filter.FilterSpell; +import mage.target.TargetSpell; + +/** + * + * @author Loki + */ +public class MentalMisstep extends CardImpl { + + private final static FilterSpell filter = new FilterSpell("spell with converted mana cost 1"); + + static { + filter.setConvertedManaCost(1); + filter.setConvertedManaCostComparison(Filter.ComparisonType.Equal); + } + + public MentalMisstep (UUID ownerId) { + super(ownerId, 38, "Mental Misstep", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{UP}"); + this.expansionSetCode = "NPH"; + this.color.setBlue(true); + this.getSpellAbility().addEffect(new CounterTargetEffect()); + this.getSpellAbility().addTarget(new TargetSpell(filter)); + } + + public MentalMisstep (final MentalMisstep card) { + super(card); + } + + @Override + public MentalMisstep copy() { + return new MentalMisstep(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/NornsAnnex.java b/Mage.Sets/src/mage/sets/newphyrexia/NornsAnnex.java new file mode 100644 index 0000000000..92cf6ecaa6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/NornsAnnex.java @@ -0,0 +1,124 @@ +/* + * 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.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.players.Player; + +/** + * @author Loki + */ +public class NornsAnnex extends CardImpl { + + public NornsAnnex(UUID ownerId) { + super(ownerId, 17, "Norn's Annex", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}{WP}{WP}"); + this.expansionSetCode = "NPH"; + this.color.setWhite(true); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new NornsAnnexReplacementEffect())); + } + + public NornsAnnex(final NornsAnnex card) { + super(card); + } + + @Override + public NornsAnnex copy() { + return new NornsAnnex(this); + } + +} + +class NornsAnnexReplacementEffect extends ReplacementEffectImpl { + + private static final String effectText = "Creatures can't attack you unless their controller pays {WP} for each creature he or she controls that's attacking you"; + + NornsAnnexReplacementEffect() { + super(Constants.Duration.WhileOnBattlefield, Constants.Outcome.Benefit); + } + + NornsAnnexReplacementEffect(NornsAnnexReplacementEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + throw new UnsupportedOperationException("Not supported."); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + if (event.getType() == GameEvent.EventType.DECLARE_ATTACKER) { + Player player = game.getPlayer(event.getPlayerId()); + if (player != null && event.getTargetId().equals(source.getControllerId())) { + ManaCostsImpl propagandaTax = new ManaCostsImpl("{WP}"); + if (propagandaTax.canPay(source.getSourceId(), event.getPlayerId(), game) && + player.chooseUse(Constants.Outcome.Benefit, "Pay {WP} to declare attacker?", game)) { + propagandaTax.pay(game, this.getId(), event.getPlayerId(), false); + + if (propagandaTax.isPaid()) { + return false; + } + } + } + return true; + } + return false; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (event.getType() == GameEvent.EventType.DECLARE_ATTACKER && event.getTargetId().equals(source.getControllerId())) { + return true; + } + return false; + } + + @Override + public NornsAnnexReplacementEffect copy() { + return new NornsAnnexReplacementEffect(this); + } + + @Override + public String getText(Ability source) { + return effectText; + } +} + + diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/SwordofBodyandMind.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/SwordofBodyandMind.java index a2750f6b9c..ec1ea61dfe 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/SwordofBodyandMind.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/SwordofBodyandMind.java @@ -60,6 +60,7 @@ import mage.target.TargetPlayer; * @author Loki */ public class SwordofBodyandMind extends CardImpl { + private static FilterCard filter = new FilterCard("green and from blue"); static { diff --git a/Mage/src/mage/abilities/costs/common/ReturnToHandSourceCost.java b/Mage/src/mage/abilities/costs/common/ReturnToHandSourceCost.java new file mode 100644 index 0000000000..9847a5d120 --- /dev/null +++ b/Mage/src/mage/abilities/costs/common/ReturnToHandSourceCost.java @@ -0,0 +1,69 @@ +/* + * 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.abilities.costs.common; + +import java.util.UUID; + +import mage.Constants.Zone; +import mage.abilities.costs.CostImpl; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * @author Loki + */ +public class ReturnToHandSourceCost extends CostImpl { + + public ReturnToHandSourceCost() { + this.text = "return {this} to it's owner's hand"; + } + + public ReturnToHandSourceCost(ReturnToHandSourceCost cost) { + super(cost); + } + + @Override + public boolean pay(Game game, UUID sourceId, UUID controllerId, boolean noMana) { + Permanent permanent = game.getPermanent(sourceId); + if (permanent == null) + return false; + paid = permanent.moveToZone(Zone.HAND, sourceId, game, false); + return paid; + } + + @Override + public boolean canPay(UUID sourceId, UUID controllerId, Game game) { + return game.getBattlefield().containsPermanent(sourceId); + } + + @Override + public ReturnToHandSourceCost copy() { + return new ReturnToHandSourceCost(this); + } +} diff --git a/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureSourceEOTEffect.java b/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureSourceEOTEffect.java index 4973fe978a..5dc7787a07 100644 --- a/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureSourceEOTEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureSourceEOTEffect.java @@ -28,6 +28,7 @@ package mage.abilities.effects.common.continious; +import mage.Constants; import mage.Constants.Duration; import mage.Constants.Layer; import mage.Constants.Outcome; @@ -73,7 +74,10 @@ public class BecomesCreatureSourceEOTEffect extends ContinuousEffectImpl 0) - permanent.getCardType().addAll(token.getCardType()); + for (Constants.CardType t : token.getCardType()) { + if (!permanent.getCardType().contains(t)) + permanent.getCardType().add(t); + } if (token.getSubtype().size() > 0) permanent.getSubtype().addAll(token.getSubtype()); }