From 82c9dac2c58ad634b20ebc8133ddf04bf6443ad4 Mon Sep 17 00:00:00 2001 From: Plopman <plopman@hotmail.ch> Date: Thu, 13 Sep 2012 16:22:34 +0200 Subject: [PATCH] 16 cards with Storm --- .../src/mage/sets/scourge/AstralSteel.java | 66 +++++++++++ .../src/mage/sets/scourge/BrainFreeze.java | 65 +++++++++++ .../src/mage/sets/scourge/Dragonstorm.java | 54 +++++++++ .../src/mage/sets/scourge/HinderingTouch.java | 66 +++++++++++ .../src/mage/sets/scourge/HuntingPack.java | 78 +++++++++++++ .../mage/sets/scourge/ReapingTheGraves.java | 66 +++++++++++ .../src/mage/sets/scourge/Scattershot.java | 65 +++++++++++ .../src/mage/sets/scourge/SproutingVines.java | 65 +++++++++++ .../mage/sets/scourge/TemporalFissure.java | 65 +++++++++++ .../mage/sets/scourge/TendrilsOfAgony.java | 68 ++++++++++++ .../src/mage/sets/scourge/WingShards.java | 67 +++++++++++ .../mage/sets/timeshifted/Dragonstorm.java | 72 ++++++++++++ .../mage/sets/timespiral/EmptyTheWarrens.java | 64 +++++++++++ .../src/mage/sets/timespiral/Grapeshot.java | 65 +++++++++++ .../src/mage/sets/timespiral/GroundRift.java | 78 +++++++++++++ .../mage/sets/timespiral/IgniteMemories.java | 105 ++++++++++++++++++ .../sets/timespiral/VolcanicAwakening.java | 65 +++++++++++ .../filter/common/FilterPermanentCard.java | 64 +++++++++++ 18 files changed, 1238 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/scourge/AstralSteel.java create mode 100644 Mage.Sets/src/mage/sets/scourge/BrainFreeze.java create mode 100644 Mage.Sets/src/mage/sets/scourge/Dragonstorm.java create mode 100644 Mage.Sets/src/mage/sets/scourge/HinderingTouch.java create mode 100644 Mage.Sets/src/mage/sets/scourge/HuntingPack.java create mode 100644 Mage.Sets/src/mage/sets/scourge/ReapingTheGraves.java create mode 100644 Mage.Sets/src/mage/sets/scourge/Scattershot.java create mode 100644 Mage.Sets/src/mage/sets/scourge/SproutingVines.java create mode 100644 Mage.Sets/src/mage/sets/scourge/TemporalFissure.java create mode 100644 Mage.Sets/src/mage/sets/scourge/TendrilsOfAgony.java create mode 100644 Mage.Sets/src/mage/sets/scourge/WingShards.java create mode 100644 Mage.Sets/src/mage/sets/timeshifted/Dragonstorm.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/EmptyTheWarrens.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/Grapeshot.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/GroundRift.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/IgniteMemories.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/VolcanicAwakening.java create mode 100644 Mage/src/mage/filter/common/FilterPermanentCard.java diff --git a/Mage.Sets/src/mage/sets/scourge/AstralSteel.java b/Mage.Sets/src/mage/sets/scourge/AstralSteel.java new file mode 100644 index 0000000000..af83901bc5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/AstralSteel.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.scourge; + +import java.util.UUID; +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.continious.BoostTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Plopman + */ +public class AstralSteel extends CardImpl<AstralSteel> { + + public AstralSteel(UUID ownerId) { + super(ownerId, 2, "Astral Steel", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{W}"); + this.expansionSetCode = "SCG"; + + this.color.setWhite(true); + + // Target creature gets +1/+2 until end of turn. + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new BoostTargetEffect(1, 2, Constants.Duration.EndOfTurn)); + // Storm + this.addAbility(new StormAbility()); + } + + public AstralSteel(final AstralSteel card) { + super(card); + } + + @Override + public AstralSteel copy() { + return new AstralSteel(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/BrainFreeze.java b/Mage.Sets/src/mage/sets/scourge/BrainFreeze.java new file mode 100644 index 0000000000..0ccac1cd18 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/BrainFreeze.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.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.TargetPlayer; + +/** + * + * @author Plopman + */ +public class BrainFreeze extends CardImpl<BrainFreeze> { + + public BrainFreeze(UUID ownerId) { + super(ownerId, 29, "Brain Freeze", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{U}"); + this.expansionSetCode = "SCG"; + + this.color.setBlue(true); + + // Target player puts the top three cards of his or her library into his or her graveyard. + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new PutLibraryIntoGraveTargetEffect(3)); + // Storm + this.addAbility(new StormAbility()); + } + + public BrainFreeze(final BrainFreeze card) { + super(card); + } + + @Override + public BrainFreeze copy() { + return new BrainFreeze(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/Dragonstorm.java b/Mage.Sets/src/mage/sets/scourge/Dragonstorm.java new file mode 100644 index 0000000000..d32732733f --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/Dragonstorm.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.scourge; + +import java.util.UUID; +import mage.Constants.Rarity; + +/** + * + * @author Plopman + */ +public class Dragonstorm extends mage.sets.timeshifted.Dragonstorm { + + public Dragonstorm(UUID ownerId) { + super(ownerId); + this.cardNumber = 90; + this.expansionSetCode = "SCG"; + this.rarity = Rarity.RARE; + } + + public Dragonstorm(final Dragonstorm card) { + super(card); + } + + @Override + public Dragonstorm copy() { + return new Dragonstorm(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/HinderingTouch.java b/Mage.Sets/src/mage/sets/scourge/HinderingTouch.java new file mode 100644 index 0000000000..971cb982b3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/HinderingTouch.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CounterUnlessPaysEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.TargetSpell; + +/** + * + * @author Plopman + */ +public class HinderingTouch extends CardImpl<HinderingTouch> { + + public HinderingTouch(UUID ownerId) { + super(ownerId, 37, "Hindering Touch", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{3}{U}"); + this.expansionSetCode = "SCG"; + + this.color.setBlue(true); + + // Counter target spell unless its controller pays {2}. + this.getSpellAbility().addTarget(new TargetSpell()); + this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(2))); + // Storm + this.addAbility(new StormAbility()); + } + + public HinderingTouch(final HinderingTouch card) { + super(card); + } + + @Override + public HinderingTouch copy() { + return new HinderingTouch(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/HuntingPack.java b/Mage.Sets/src/mage/sets/scourge/HuntingPack.java new file mode 100644 index 0000000000..d10514fecc --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/HuntingPack.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.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.game.permanent.token.Token; + + +/** + * + * @author Plopman + */ +public class HuntingPack extends CardImpl<HuntingPack> { + + public HuntingPack(UUID ownerId) { + super(ownerId, 121, "Hunting Pack", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{5}{G}{G}"); + this.expansionSetCode = "SCG"; + + this.color.setGreen(true); + + // Put a 4/4 green Beast creature token onto the battlefield. + this.getSpellAbility().addEffect(new CreateTokenEffect(new HuntingPackToken(), 1)); + // Storm + this.addAbility(new StormAbility()); + } + + public HuntingPack(final HuntingPack card) { + super(card); + } + + @Override + public HuntingPack copy() { + return new HuntingPack(this); + } +} + +class HuntingPackToken extends Token { + + public HuntingPackToken() { + super("Beast", "4/4 green Beast creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Beast"); + this.color.setGreen(true); + power = new MageInt(4); + toughness = new MageInt(4); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/ReapingTheGraves.java b/Mage.Sets/src/mage/sets/scourge/ReapingTheGraves.java new file mode 100644 index 0000000000..ed0d58f432 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/ReapingTheGraves.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author Plopman + */ +public class ReapingTheGraves extends CardImpl<ReapingTheGraves> { + + public ReapingTheGraves(UUID ownerId) { + super(ownerId, 72, "Reaping the Graves", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{B}"); + this.expansionSetCode = "SCG"; + + this.color.setBlack(true); + + // Return target creature card from your graveyard to your hand. + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); + this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); + // Storm + this.addAbility(new StormAbility()); + } + + public ReapingTheGraves(final ReapingTheGraves card) { + super(card); + } + + @Override + public ReapingTheGraves copy() { + return new ReapingTheGraves(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/Scattershot.java b/Mage.Sets/src/mage/sets/scourge/Scattershot.java new file mode 100644 index 0000000000..0a80c428d4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/Scattershot.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.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Plopman + */ +public class Scattershot extends CardImpl<Scattershot> { + + public Scattershot(UUID ownerId) { + super(ownerId, 102, "Scattershot", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); + this.expansionSetCode = "SCG"; + + this.color.setRed(true); + + // Scattershot deals 1 damage to target creature. + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new DamageTargetEffect(1)); + // Storm + this.addAbility(new StormAbility()); + } + + public Scattershot(final Scattershot card) { + super(card); + } + + @Override + public Scattershot copy() { + return new Scattershot(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/SproutingVines.java b/Mage.Sets/src/mage/sets/scourge/SproutingVines.java new file mode 100644 index 0000000000..93acdb8913 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/SproutingVines.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.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterBasicLandCard; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author Plopman + */ +public class SproutingVines extends CardImpl<SproutingVines> { + + public SproutingVines(UUID ownerId) { + super(ownerId, 128, "Sprouting Vines", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}"); + this.expansionSetCode = "SCG"; + + this.color.setGreen(true); + + // Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library. + this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, new FilterBasicLandCard()), true)); + // Storm + this.addAbility(new StormAbility()); + } + + public SproutingVines(final SproutingVines card) { + super(card); + } + + @Override + public SproutingVines copy() { + return new SproutingVines(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/TemporalFissure.java b/Mage.Sets/src/mage/sets/scourge/TemporalFissure.java new file mode 100644 index 0000000000..fa7e6b1d0f --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/TemporalFissure.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.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.TargetPermanent; + +/** + * + * @author Plopman + */ +public class TemporalFissure extends CardImpl<TemporalFissure> { + + public TemporalFissure(UUID ownerId) { + super(ownerId, 53, "Temporal Fissure", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{4}{U}"); + this.expansionSetCode = "SCG"; + + this.color.setBlue(true); + + // Return target permanent to its owner's hand. + this.getSpellAbility().addTarget(new TargetPermanent()); + this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); + // Storm + this.addAbility(new StormAbility()); + } + + public TemporalFissure(final TemporalFissure card) { + super(card); + } + + @Override + public TemporalFissure copy() { + return new TemporalFissure(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/TendrilsOfAgony.java b/Mage.Sets/src/mage/sets/scourge/TendrilsOfAgony.java new file mode 100644 index 0000000000..627938fd7f --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/TendrilsOfAgony.java @@ -0,0 +1,68 @@ +/* + * 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.scourge; + +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.abilities.effects.common.LoseLifeTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.TargetPlayer; + +/** + * + * @author Plopman + */ +public class TendrilsOfAgony extends CardImpl<TendrilsOfAgony> { + + public TendrilsOfAgony(UUID ownerId) { + super(ownerId, 75, "Tendrils of Agony", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{B}{B}"); + this.expansionSetCode = "SCG"; + + this.color.setBlack(true); + + // Target player loses 2 life and you gain 2 life. + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2)); + this.getSpellAbility().addEffect(new GainLifeEffect(2)); + // Storm + this.addAbility(new StormAbility()); + } + + public TendrilsOfAgony(final TendrilsOfAgony card) { + super(card); + } + + @Override + public TendrilsOfAgony copy() { + return new TendrilsOfAgony(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/WingShards.java b/Mage.Sets/src/mage/sets/scourge/WingShards.java new file mode 100644 index 0000000000..8b70e8d726 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/WingShards.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.scourge; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.SacrificeEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterAttackingCreature; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.TargetPlayer; + +/** + * + * @author Plopman + */ +public class WingShards extends CardImpl<WingShards> { + + public WingShards(UUID ownerId) { + super(ownerId, 25, "Wing Shards", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{W}{W}"); + this.expansionSetCode = "SCG"; + + this.color.setWhite(true); + + // Target player sacrifices an attacking creature. + this.getSpellAbility().addEffect(new SacrificeEffect(new FilterAttackingCreature(), 1, "Target player")); + this.getSpellAbility().addTarget(new TargetPlayer()); + // Storm + this.addAbility(new StormAbility()); + } + + public WingShards(final WingShards card) { + super(card); + } + + @Override + public WingShards copy() { + return new WingShards(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timeshifted/Dragonstorm.java b/Mage.Sets/src/mage/sets/timeshifted/Dragonstorm.java new file mode 100644 index 0000000000..37c8b5af48 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timeshifted/Dragonstorm.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.timeshifted; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterPermanentCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author Plopman + */ +public class Dragonstorm extends CardImpl<Dragonstorm> { + + + final static private FilterPermanentCard filter = new FilterPermanentCard("Dragon permanent card"); + + static { + filter.add(new SubtypePredicate("Dragon")); + } + public Dragonstorm(UUID ownerId) { + super(ownerId, 60, "Dragonstorm", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{8}{R}"); + this.expansionSetCode = "TSB"; + + this.color.setRed(true); + + // Search your library for a Dragon permanent card and put it onto the battlefield. Then shuffle your library. + this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false)); + // Storm + this.addAbility(new StormAbility()); + } + + public Dragonstorm(final Dragonstorm card) { + super(card); + } + + @Override + public Dragonstorm copy() { + return new Dragonstorm(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/EmptyTheWarrens.java b/Mage.Sets/src/mage/sets/timespiral/EmptyTheWarrens.java new file mode 100644 index 0000000000..7a155fd9a9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/EmptyTheWarrens.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.timespiral; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.game.permanent.token.GoblinToken; + +/** + * + * @author Plopman + */ +public class EmptyTheWarrens extends CardImpl<EmptyTheWarrens> { + + public EmptyTheWarrens(UUID ownerId) { + super(ownerId, 152, "Empty the Warrens", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{3}{R}"); + this.expansionSetCode = "TSP"; + + this.color.setRed(true); + + // Put two 1/1 red Goblin creature tokens onto the battlefield. + this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinToken(), 2)); + // Storm + this.addAbility(new StormAbility()); + } + + public EmptyTheWarrens(final EmptyTheWarrens card) { + super(card); + } + + @Override + public EmptyTheWarrens copy() { + return new EmptyTheWarrens(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/Grapeshot.java b/Mage.Sets/src/mage/sets/timespiral/Grapeshot.java new file mode 100644 index 0000000000..e267d2c4ea --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/Grapeshot.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.timespiral; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author Plopman + */ +public class Grapeshot extends CardImpl<Grapeshot> { + + public Grapeshot(UUID ownerId) { + super(ownerId, 160, "Grapeshot", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "TSP"; + + this.color.setRed(true); + + // Grapeshot deals 1 damage to target creature or player. + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); + this.getSpellAbility().addEffect(new DamageTargetEffect(1)); + // Storm + this.addAbility(new StormAbility()); + } + + public Grapeshot(final Grapeshot card) { + super(card); + } + + @Override + public Grapeshot copy() { + return new Grapeshot(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/GroundRift.java b/Mage.Sets/src/mage/sets/timespiral/GroundRift.java new file mode 100644 index 0000000000..64f0825d0e --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/GroundRift.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.timespiral; + +import java.util.UUID; +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.CantBlockTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterAttackingCreature; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Plopman + */ +public class GroundRift extends CardImpl<GroundRift> { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); + + static { + filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); + } + + public GroundRift(UUID ownerId) { + super(ownerId, 162, "Ground Rift", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{R}"); + this.expansionSetCode = "TSP"; + + this.color.setRed(true); + + // Target creature without flying can't block this turn. + this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); + this.getSpellAbility().addEffect(new CantBlockTargetEffect(Constants.Duration.EndOfTurn)); + // Storm + this.addAbility(new StormAbility()); + } + + public GroundRift(final GroundRift card) { + super(card); + } + + @Override + public GroundRift copy() { + return new GroundRift(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/IgniteMemories.java b/Mage.Sets/src/mage/sets/timespiral/IgniteMemories.java new file mode 100644 index 0000000000..cf56111180 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/IgniteMemories.java @@ -0,0 +1,105 @@ +/* + * 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.timespiral; + +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.abilities.keyword.StormAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetPlayer; + +/** + * + * @author Plopman + */ +public class IgniteMemories extends CardImpl<IgniteMemories> { + + public IgniteMemories(UUID ownerId) { + super(ownerId, 164, "Ignite Memories", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{4}{R}"); + this.expansionSetCode = "TSP"; + + this.color.setRed(true); + + // Target player reveals a card at random from his or her hand. Ignite Memories deals damage to that player equal to that card's converted mana cost. + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new IgniteMemoriesEffect()); + // Storm + this.addAbility(new StormAbility()); + } + + public IgniteMemories(final IgniteMemories card) { + super(card); + } + + @Override + public IgniteMemories copy() { + return new IgniteMemories(this); + } +} + + +class IgniteMemoriesEffect extends OneShotEffect<IgniteMemoriesEffect> { + + public IgniteMemoriesEffect() { + super(Constants.Outcome.Damage); + staticText = "Target player reveals a card at random from his or her hand. Ignite Memories deals damage to that player equal to that card's converted mana cost"; + } + + public IgniteMemoriesEffect(final IgniteMemoriesEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(targetPointer.getFirst(game, source)); + if (player != null && player.getHand().size() > 0) { + Cards revealed = new CardsImpl(); + Card card = player.getHand().getRandom(game); + revealed.add(card); + player.revealCards("Ignite Memories", revealed, game); + player.damage(card.getManaCost().convertedManaCost(), id, game, false, true); + return true; + } + return false; + } + + @Override + public IgniteMemoriesEffect copy() { + return new IgniteMemoriesEffect(this); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/timespiral/VolcanicAwakening.java b/Mage.Sets/src/mage/sets/timespiral/VolcanicAwakening.java new file mode 100644 index 0000000000..4b0b0dae62 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/VolcanicAwakening.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.timespiral; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.StormAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author Plopman + */ +public class VolcanicAwakening extends CardImpl<VolcanicAwakening> { + + public VolcanicAwakening(UUID ownerId) { + super(ownerId, 186, "Volcanic Awakening", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{4}{R}{R}"); + this.expansionSetCode = "TSP"; + + this.color.setRed(true); + + // Destroy target land. + this.getSpellAbility().addTarget(new TargetLandPermanent()); + this.getSpellAbility().addEffect(new DestroyTargetEffect()); + // Storm + this.addAbility(new StormAbility()); + } + + public VolcanicAwakening(final VolcanicAwakening card) { + super(card); + } + + @Override + public VolcanicAwakening copy() { + return new VolcanicAwakening(this); + } +} diff --git a/Mage/src/mage/filter/common/FilterPermanentCard.java b/Mage/src/mage/filter/common/FilterPermanentCard.java new file mode 100644 index 0000000000..e6cf58c620 --- /dev/null +++ b/Mage/src/mage/filter/common/FilterPermanentCard.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.filter.common; + +import mage.Constants.CardType; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; + +/** + * + * @author Plopman + */ +public class FilterPermanentCard extends FilterCard { + + public FilterPermanentCard() { + this("permanent card"); + } + + public FilterPermanentCard(String name) { + super(name); + this.add(Predicates.or( + new CardTypePredicate(CardType.ARTIFACT), + new CardTypePredicate(CardType.CREATURE), + new CardTypePredicate(CardType.ENCHANTMENT), + new CardTypePredicate(CardType.LAND), + new CardTypePredicate(CardType.PLANESWALKER))); + } + + public FilterPermanentCard(final FilterPermanentCard filter) { + super(filter); + } + + @Override + public FilterPermanentCard copy() { + return new FilterPermanentCard(this); + } +}