From e139e4524fe938c96bc32fc107840308e3e0eb9e Mon Sep 17 00:00:00 2001 From: LoneFox Date: Wed, 24 Jun 2015 19:31:15 +0300 Subject: [PATCH 1/5] Don't use a proprietary class. Fixes build on OpenJDK. --- .../client/dialog/CardInfoWindowDialog.java | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java b/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java index 18d3cbdc59..3d7eb80983 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java @@ -34,7 +34,6 @@ package mage.client.dialog; -import static com.sun.java.accessibility.util.AWTEventMonitor.addWindowListener; import java.awt.Point; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -44,6 +43,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.ImageIcon; import javax.swing.SwingUtilities; +import javax.swing.event.InternalFrameAdapter; +import javax.swing.event.InternalFrameEvent; import mage.client.cards.BigCard; import mage.client.util.Config; import mage.client.util.ImageHelper; @@ -61,18 +62,18 @@ import org.mage.plugins.card.utils.impl.ImageManagerImpl; public class CardInfoWindowDialog extends MageDialog { public static enum ShowType { REVEAL, LOOKED_AT, EXILE, GRAVEYARD, OTHER }; - + private ShowType showType; private boolean positioned; private String name; - + public CardInfoWindowDialog(ShowType showType, String name) { this.name = name; this.title = name; this.showType = showType; this.positioned = false; initComponents(); - + this.setModal(false); switch(this.showType) { case LOOKED_AT: @@ -88,20 +89,20 @@ public class CardInfoWindowDialog extends MageDialog { this.setIconifiable(false); this.setClosable(true); this.setDefaultCloseOperation(HIDE_ON_CLOSE); - addWindowListener(new WindowAdapter() { + addInternalFrameListener(new InternalFrameAdapter() { @Override - public void windowClosing(WindowEvent e) { + public void internalFrameClosing(InternalFrameEvent e) { CardInfoWindowDialog.this.hideDialog(); } - }); + }); break; case EXILE: this.setFrameIcon(new ImageIcon(ImageManagerImpl.getInstance().getExileImage())); break; default: // no icon yet - } - this.setTitelBarToolTip(name); + } + this.setTitelBarToolTip(name); } public void cleanUp() { @@ -112,17 +113,17 @@ public class CardInfoWindowDialog extends MageDialog { cards.loadCards(showCards, bigCard, gameId); showAndPositionWindow(); } - + public void loadCards(CardsView showCards, BigCard bigCard, UUID gameId) { - cards.loadCards(showCards, bigCard, gameId, null); + cards.loadCards(showCards, bigCard, gameId, null); if (showType.equals(ShowType.GRAVEYARD)) { setTitle(name + "'s Graveyard (" + showCards.size() + ")"); - this.setTitelBarToolTip(name); + this.setTitelBarToolTip(name); } - showAndPositionWindow(); + showAndPositionWindow(); } - private void showAndPositionWindow() { + private void showAndPositionWindow() { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { @@ -142,7 +143,7 @@ public class CardInfoWindowDialog extends MageDialog { } }); } - + public void loadCards(ExileView exile, BigCard bigCard, UUID gameId) { boolean changed = cards.loadCards(exile, bigCard, gameId, null); if (exile.size() > 0) { From 91aae33db6baf9e6034acf89ac6a4f1412018519 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Wed, 24 Jun 2015 19:32:35 +0300 Subject: [PATCH 2/5] Fix some typos and copy-paste errors --- Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java | 2 +- Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java | 2 +- Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java | 2 +- Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java | 2 +- Mage.Sets/src/mage/sets/urzassaga/OpalArchangel.java | 2 +- Mage.Sets/src/mage/sets/urzassaga/OpalGargoyle.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java b/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java index c923743d0b..904399afde 100644 --- a/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java +++ b/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java @@ -51,7 +51,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class KnightOfStromgald extends CardImpl { - private static final FilterCard filter = new FilterCard("White"); + private static final FilterCard filter = new FilterCard("white"); static { filter.add(new ColorPredicate(ObjectColor.WHITE)); diff --git a/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java b/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java index dc31f84840..7d1907effc 100644 --- a/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java +++ b/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java @@ -51,7 +51,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class OrderOfTheWhiteShield extends CardImpl { - private static final FilterCard filter = new FilterCard("Black"); + private static final FilterCard filter = new FilterCard("black"); static { filter.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java b/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java index fae1e77830..f5cb2c7197 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java +++ b/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java @@ -51,7 +51,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class OrderOfLeitbur extends CardImpl { - private static final FilterCard filter = new FilterCard("Black"); + private static final FilterCard filter = new FilterCard("black"); static { filter.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java b/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java index 2bbbd28ddc..4e5d1e939f 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java +++ b/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java @@ -51,7 +51,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class OrderOfTheEbonHand extends CardImpl { - private static final FilterCard filter = new FilterCard("White"); + private static final FilterCard filter = new FilterCard("white"); static { filter.add(new ColorPredicate(ObjectColor.WHITE)); diff --git a/Mage.Sets/src/mage/sets/urzassaga/OpalArchangel.java b/Mage.Sets/src/mage/sets/urzassaga/OpalArchangel.java index 274081c672..cbd4c0bb59 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/OpalArchangel.java +++ b/Mage.Sets/src/mage/sets/urzassaga/OpalArchangel.java @@ -75,7 +75,7 @@ public class OpalArchangel extends CardImpl { class OpalArchangelToken extends Token { public OpalArchangelToken() { - super("Angel", "a 3/3 Angelt creature with flying and vigilance"); + super("Angel", "a 3/3 Angel creature with flying and vigilance"); cardType.add(CardType.CREATURE); subtype.add("Angel"); power = new MageInt(5); diff --git a/Mage.Sets/src/mage/sets/urzassaga/OpalGargoyle.java b/Mage.Sets/src/mage/sets/urzassaga/OpalGargoyle.java index be650e80db..5575a46eef 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/OpalGargoyle.java +++ b/Mage.Sets/src/mage/sets/urzassaga/OpalGargoyle.java @@ -76,7 +76,7 @@ class OpalGargoyleToken extends Token { public OpalGargoyleToken() { super("Gargoyle", "a 2/2 Gargoyle creature with flying"); cardType.add(CardType.CREATURE); - subtype.add("Knight"); + subtype.add("Gargoyle"); power = new MageInt(2); toughness = new MageInt(2); this.addAbility(FlyingAbility.getInstance()); From ccd92dd24155aa805a27754ad490e5dc52ace366 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Wed, 24 Jun 2015 19:38:53 +0300 Subject: [PATCH 3/5] Fix Urborg. It had wrong card number and produced green instead of black mana. --- Mage.Sets/src/mage/sets/legends/Urborg.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Mage.Sets/src/mage/sets/legends/Urborg.java b/Mage.Sets/src/mage/sets/legends/Urborg.java index 6e26883912..ba88b65b3e 100644 --- a/Mage.Sets/src/mage/sets/legends/Urborg.java +++ b/Mage.Sets/src/mage/sets/legends/Urborg.java @@ -34,7 +34,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.LoseAbilityOrAnotherAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.SwampwalkAbility; -import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; @@ -48,12 +48,12 @@ import mage.target.common.TargetCreaturePermanent; public class Urborg extends CardImpl { public Urborg(UUID ownerId) { - super(ownerId, 107, "Urborg", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + super(ownerId, 255, "Urborg", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "LEG"; this.supertype.add("Legendary"); // {tap}: Add {B} to your mana pool. - this.addAbility(new GreenManaAbility()); + this.addAbility(new BlackManaAbility()); // {tap}: Target creature loses first strike or swampwalk until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilityOrAnotherAbilityTargetEffect(FirstStrikeAbility.getInstance(), new SwampwalkAbility()), new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); From 596bee33c28deb663890dfd4b1171d90c9ccea58 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Wed, 24 Jun 2015 19:56:22 +0300 Subject: [PATCH 4/5] Use ShuffleIntoLibrarySourceEffect instead of custom effect implementation for Blitz Hellion and Lightning Shrieker. This also fixes a bug where controller's library was shuffled instead of owner's. --- .../mage/sets/alarareborn/BlitzHellion.java | 46 +++---------------- .../sets/fatereforged/LightningShrieker.java | 46 +++---------------- 2 files changed, 13 insertions(+), 79 deletions(-) diff --git a/Mage.Sets/src/mage/sets/alarareborn/BlitzHellion.java b/Mage.Sets/src/mage/sets/alarareborn/BlitzHellion.java index d9a9cf556a..ead81b9ff4 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/BlitzHellion.java +++ b/Mage.Sets/src/mage/sets/alarareborn/BlitzHellion.java @@ -29,17 +29,15 @@ package mage.sets.alarareborn; import java.util.UUID; -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.TrampleAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; +import mage.constants.*; /** * @@ -64,7 +62,9 @@ public class BlitzHellion extends CardImpl { this.addAbility(HasteAbility.getInstance()); // At the beginning of the end step, Blitz Hellion's owner shuffles it into his or her library. - this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new ShuffleSourceEffect(), TargetController.ANY, null, false)); + Effect effect = new ShuffleIntoLibrarySourceEffect(); + effect.setText("{this}'s owner shuffles it into his or her library."); + this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, null, false)); } public BlitzHellion(final BlitzHellion card) { @@ -76,35 +76,3 @@ public class BlitzHellion extends CardImpl { return new BlitzHellion(this); } } - -class ShuffleSourceEffect extends OneShotEffect { - - ShuffleSourceEffect() { - super(Outcome.Neutral); - staticText = "{this}'s owner shuffles it into his or her library"; - } - - ShuffleSourceEffect(final ShuffleSourceEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - if (player == null) { - return false; - } - Permanent permanent = game.getPermanent(source.getSourceId()); - if (permanent != null) { - permanent.moveToZone(Zone.LIBRARY, id, game, false); - player.shuffleLibrary(game); - return true; - } - return false; - } - - @Override - public ShuffleSourceEffect copy() { - return new ShuffleSourceEffect(this); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/fatereforged/LightningShrieker.java b/Mage.Sets/src/mage/sets/fatereforged/LightningShrieker.java index 44d856d69f..22a7fa3ed7 100644 --- a/Mage.Sets/src/mage/sets/fatereforged/LightningShrieker.java +++ b/Mage.Sets/src/mage/sets/fatereforged/LightningShrieker.java @@ -29,21 +29,17 @@ package mage.sets.fatereforged; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.TargetController; import mage.constants.Zone; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; /** * @@ -65,7 +61,9 @@ public class LightningShrieker extends CardImpl { // Haste this.addAbility(HasteAbility.getInstance()); // At the beginning of the end step, Lightning Shrieker's owner shuffles it into his or her library. - this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new ShuffleSourceEffect(), TargetController.ANY, null, false)); + Effect effect = new ShuffleIntoLibrarySourceEffect(); + effect.setText("{this}'s owner shuffles it into his or her library."); + this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, null, false)); } public LightningShrieker(final LightningShrieker card) { @@ -77,35 +75,3 @@ public class LightningShrieker extends CardImpl { return new LightningShrieker(this); } } - -class ShuffleSourceEffect extends OneShotEffect { - - ShuffleSourceEffect() { - super(Outcome.Neutral); - staticText = "{this}'s owner shuffles it into his or her library"; - } - - ShuffleSourceEffect(final ShuffleSourceEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - if (player == null) { - return false; - } - Permanent permanent = game.getPermanent(source.getSourceId()); - if (permanent != null) { - permanent.moveToZone(Zone.LIBRARY, id, game, false); - player.shuffleLibrary(game); - return true; - } - return false; - } - - @Override - public ShuffleSourceEffect copy() { - return new ShuffleSourceEffect(this); - } -} \ No newline at end of file From 287b24bf314e0f5f252d4be7c6f1ff77f4fd2df2 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Wed, 24 Jun 2015 20:34:31 +0300 Subject: [PATCH 5/5] Implement cards: Cerulean Sphinx, Dakmor Lancer, Goblin Gardener, and Storm Shaman --- .../src/mage/sets/alliances/StormShaman1.java | 69 ++++++++++++++++ .../src/mage/sets/alliances/StormShaman2.java | 54 +++++++++++++ .../src/mage/sets/ravnica/CeruleanSphinx.java | 72 +++++++++++++++++ .../sets/seventhedition/DakmorLancer.java | 55 +++++++++++++ .../sets/seventhedition/GoblinGardener.java | 53 ++++++++++++ .../mage/sets/seventhedition/StormShaman.java | 55 +++++++++++++ .../mage/sets/starter1999/DakmorLancer.java | 80 +++++++++++++++++++ .../sets/urzasdestiny/GoblinGardener.java | 68 ++++++++++++++++ 8 files changed, 506 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/alliances/StormShaman1.java create mode 100644 Mage.Sets/src/mage/sets/alliances/StormShaman2.java create mode 100644 Mage.Sets/src/mage/sets/ravnica/CeruleanSphinx.java create mode 100644 Mage.Sets/src/mage/sets/seventhedition/DakmorLancer.java create mode 100644 Mage.Sets/src/mage/sets/seventhedition/GoblinGardener.java create mode 100644 Mage.Sets/src/mage/sets/seventhedition/StormShaman.java create mode 100644 Mage.Sets/src/mage/sets/starter1999/DakmorLancer.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/GoblinGardener.java diff --git a/Mage.Sets/src/mage/sets/alliances/StormShaman1.java b/Mage.Sets/src/mage/sets/alliances/StormShaman1.java new file mode 100644 index 0000000000..996bef9257 --- /dev/null +++ b/Mage.Sets/src/mage/sets/alliances/StormShaman1.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.sets.alliances; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LoneFox + + */ +public class StormShaman1 extends CardImpl { + + public StormShaman1(UUID ownerId) { + super(ownerId, 118, "Storm Shaman", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "ALL"; + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.subtype.add("Shaman"); + this.power = new MageInt(0); + this.toughness = new MageInt(4); + + // {R}: Storm Shaman gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{R}"))); + } + + public StormShaman1(final StormShaman1 card) { + super(card); + } + + @Override + public StormShaman1 copy() { + return new StormShaman1(this); + } +} diff --git a/Mage.Sets/src/mage/sets/alliances/StormShaman2.java b/Mage.Sets/src/mage/sets/alliances/StormShaman2.java new file mode 100644 index 0000000000..744d2da86f --- /dev/null +++ b/Mage.Sets/src/mage/sets/alliances/StormShaman2.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.alliances; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class StormShaman2 extends mage.sets.alliances.StormShaman1 { + + public StormShaman2(UUID ownerId) { + super(ownerId); + this.cardNumber = 119; + this.rarity = Rarity.UNCOMMON; + } + + public StormShaman2(final StormShaman2 card) { + super(card); + } + + @Override + public StormShaman2 copy() { + return new StormShaman2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ravnica/CeruleanSphinx.java b/Mage.Sets/src/mage/sets/ravnica/CeruleanSphinx.java new file mode 100644 index 0000000000..2fcdd83cf7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/ravnica/CeruleanSphinx.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.ravnica; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LoneFox + + */ +public class CeruleanSphinx extends CardImpl { + + public CeruleanSphinx(UUID ownerId) { + super(ownerId, 39, "Cerulean Sphinx", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); + this.expansionSetCode = "RAV"; + this.subtype.add("Sphinx"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + // {U}: Cerulean Sphinx's owner shuffles it into his or her library. + Effect effect = new ShuffleIntoLibrarySourceEffect(); + effect.setText("{this}'s owner shuffles it into his or her library."); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{U}"))); + } + + public CeruleanSphinx(final CeruleanSphinx card) { + super(card); + } + + @Override + public CeruleanSphinx copy() { + return new CeruleanSphinx(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/DakmorLancer.java b/Mage.Sets/src/mage/sets/seventhedition/DakmorLancer.java new file mode 100644 index 0000000000..97f58dda84 --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/DakmorLancer.java @@ -0,0 +1,55 @@ +/* + * 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.seventhedition; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class DakmorLancer extends mage.sets.starter1999.DakmorLancer { + + public DakmorLancer(UUID ownerId) { + super(ownerId); + this.cardNumber = 126; + this.expansionSetCode = "7ED"; + this.rarity = Rarity.UNCOMMON; + } + + public DakmorLancer(final DakmorLancer card) { + super(card); + } + + @Override + public DakmorLancer copy() { + return new DakmorLancer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/GoblinGardener.java b/Mage.Sets/src/mage/sets/seventhedition/GoblinGardener.java new file mode 100644 index 0000000000..181263ed76 --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/GoblinGardener.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.seventhedition; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class GoblinGardener extends mage.sets.urzasdestiny.GoblinGardener { + + public GoblinGardener(UUID ownerId) { + super(ownerId); + this.cardNumber = 188; + this.expansionSetCode = "7ED"; + } + + public GoblinGardener(final GoblinGardener card) { + super(card); + } + + @Override + public GoblinGardener copy() { + return new GoblinGardener(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/StormShaman.java b/Mage.Sets/src/mage/sets/seventhedition/StormShaman.java new file mode 100644 index 0000000000..f56e1c44ab --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/StormShaman.java @@ -0,0 +1,55 @@ +/* + * 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.seventhedition; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class StormShaman extends mage.sets.alliances.StormShaman1 { + + public StormShaman(UUID ownerId) { + super(ownerId); + this.cardNumber = 222; + this.expansionSetCode = "7ED"; + this.rarity = Rarity.UNCOMMON; + } + + public StormShaman(final StormShaman card) { + super(card); + } + + @Override + public StormShaman copy() { + return new StormShaman(this); + } +} diff --git a/Mage.Sets/src/mage/sets/starter1999/DakmorLancer.java b/Mage.Sets/src/mage/sets/starter1999/DakmorLancer.java new file mode 100644 index 0000000000..9ed8042140 --- /dev/null +++ b/Mage.Sets/src/mage/sets/starter1999/DakmorLancer.java @@ -0,0 +1,80 @@ +/* + * 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.starter1999; + +import java.util.UUID; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LoneFox + + */ +public class DakmorLancer extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature"); + + static { + filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); + } + + + public DakmorLancer(UUID ownerId) { + super(ownerId, 71, "Dakmor Lancer", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); + this.expansionSetCode = "S99"; + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Dakmor Lancer enters the battlefield, destroy target nonblack creature. + Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public DakmorLancer(final DakmorLancer card) { + super(card); + } + + @Override + public DakmorLancer copy() { + return new DakmorLancer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/GoblinGardener.java b/Mage.Sets/src/mage/sets/urzasdestiny/GoblinGardener.java new file mode 100644 index 0000000000..891a700fc8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/GoblinGardener.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.urzasdestiny; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author LoneFox + + */ +public class GoblinGardener extends CardImpl { + + public GoblinGardener(UUID ownerId) { + super(ownerId, 84, "Goblin Gardener", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{R}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Goblin"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // When Goblin Gardener dies, destroy target land. + Ability ability = new DiesTriggeredAbility(new DestroyTargetEffect(), false); + ability.addTarget(new TargetLandPermanent()); + this.addAbility(ability); + } + + public GoblinGardener(final GoblinGardener card) { + super(card); + } + + @Override + public GoblinGardener copy() { + return new GoblinGardener(this); + } +}