diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form index 74699d8653..e35b22b89b 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form @@ -155,7 +155,7 @@ - + @@ -253,7 +253,7 @@ - + diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java index 8ae68984ae..75a86ecfea 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java @@ -474,7 +474,7 @@ public class PreferencesDialog extends javax.swing.JDialog { }); showToolTipsInAnyZone.setSelected(true); - showToolTipsInAnyZone.setText("Show card tooltips while hoovering with the mouse pointer over a card"); + showToolTipsInAnyZone.setText("Show card tooltips while hovering with the mouse pointer over a card"); showToolTipsInAnyZone.setToolTipText(""); showToolTipsInAnyZone.setActionCommand(""); showToolTipsInAnyZone.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); @@ -533,7 +533,7 @@ public class PreferencesDialog extends javax.swing.JDialog { showPlayerNamesPermanently.setSelected(true); showPlayerNamesPermanently.setText("Show player names on avatar permanently"); - showPlayerNamesPermanently.setToolTipText("Instead showing the names only if you hoover over the avatar with the mouse, the name is shown all the time."); + showPlayerNamesPermanently.setToolTipText("Instead showing the names only if you hover over the avatar with the mouse, the name is shown all the time."); showPlayerNamesPermanently.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); showPlayerNamesPermanently.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java index 6a7f024aec..2600d49628 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java @@ -388,7 +388,7 @@ public class MageActionCallback implements ActionCallback { /** * Hides the text popup window - * + * */ @Override public void hidePopup() { @@ -445,7 +445,7 @@ public class MageActionCallback implements ActionCallback { } } return; - } + } if (notches < 0) { // move up - show normal image enlargeCard(EnlargeMode.NORMAL); @@ -456,7 +456,7 @@ public class MageActionCallback implements ActionCallback { } /** - * Show the big card image on mouse position while hoovering over a card + * Show the big card image on mouse position while hovering over a card * * @param showAlternative defines if the original image (if it's a copied card) or the opposite side of a transformable card will be shown */ @@ -489,7 +489,7 @@ public class MageActionCallback implements ActionCallback { cardPreviewContainer.setVisible(false); cardPreviewContainer = MageFrame.getUI().getComponent(MageComponents.CARD_PREVIEW_CONTAINER_ROTATED); cardPreviewContainer.setVisible(false); - + } catch (InterruptedException e) { e.printStackTrace(); } @@ -538,7 +538,7 @@ public class MageActionCallback implements ActionCallback { location.translate(-parentPoint.x, -parentPoint.y); popupContainer.setLocation(location); popupContainer.setVisible(true); - + MageCard mageCard = (MageCard) transferData.component; Image image = null; switch (enlargeMode) { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java index fb14b5569d..774fea3adb 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java @@ -99,12 +99,12 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti public JPanel buttonPanel; private JButton dayNightButton; - public JPanel copyIconPanel; + public JPanel copyIconPanel; private JButton showCopySourceButton; - + public JPanel iconPanel; private JButton typeButton; - + public JPanel counterPanel; private JLabel loyaltyCounterLabel; private JLabel plusCounterLabel; @@ -125,7 +125,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti private boolean isSelected; private boolean isPlayable; private boolean isChoosable; - private boolean canAttack; + private boolean canAttack; private boolean showCastingCost; private boolean hasImage = false; private float alpha = 1.0f; @@ -151,7 +151,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti private JPanel cardArea; private int yTextOffset = 10; - + public CardPanel(CardView newGameCard, UUID gameId, final boolean loadImage, ActionCallback callback, final boolean foil, Dimension dimension) { this.gameCard = newGameCard; this.callback = callback; @@ -224,12 +224,12 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti if (AbilityType.TRIGGERED.equals(newGameCard.getAbilityType())) { setTypeIcon(ImageManagerImpl.getInstance().getTriggeredAbilityImage(),"Triggered Ability"); } else if (AbilityType.ACTIVATED.equals(newGameCard.getAbilityType())) { - setTypeIcon(ImageManagerImpl.getInstance().getActivatedAbilityImage(),"Activated Ability"); - } + setTypeIcon(ImageManagerImpl.getInstance().getActivatedAbilityImage(),"Activated Ability"); + } } - + if (this.gameCard.isToken()) { - setTypeIcon(ImageManagerImpl.getInstance().getTokenIconImage(),"Token Permanent"); + setTypeIcon(ImageManagerImpl.getInstance().getTokenIconImage(),"Token Permanent"); } // icon to inform about permanent is copying something @@ -242,7 +242,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti showCopySourceButton = new JButton(""); showCopySourceButton.setLocation(2, 2); showCopySourceButton.setSize(25, 25); - showCopySourceButton.setToolTipText("This permanent is copying a target. To see original image, push this button or turn mouse wheel down while hoovering with the mouse pointer over the permanent."); + showCopySourceButton.setToolTipText("This permanent is copying a target. To see original image, push this button or turn mouse wheel down while hovering with the mouse pointer over the permanent."); copyIconPanel.setVisible(((PermanentView) this.gameCard).isCopy()); showCopySourceButton.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getCopyInformIconImage())); @@ -265,7 +265,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti addMouseMotionListener(this); addMouseWheelListener(this); addComponentListener(this); - + displayTitleAnyway = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SHOW_CARD_NAMES, "true").equals("true"); titleText = new GlowText(); setText(gameCard); @@ -274,7 +274,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti titleText.setGlow(Color.black, TEXT_GLOW_SIZE, TEXT_GLOW_INTENSITY); titleText.setWrap(true); add(titleText); - + ptText = new GlowText(); if (CardUtil.isCreature(gameCard)) { ptText.setText(gameCard.getPower() + "/" + gameCard.getToughness()); @@ -350,9 +350,9 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti if (toolTipText != null) { typeButton.setToolTipText(toolTipText); } - iconPanel.add(typeButton); + iconPanel.add(typeButton); } - + public void cleanUp() { if (dayNightButton != null) { for(ActionListener al: dayNightButton.getActionListeners()) { @@ -596,7 +596,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti int offsetX = Math.round((CARD_SIZE_FULL.width - cardWidth) / 10.0f); ptText.setLocation(cardXOffset + ptX - TEXT_GLOW_SIZE / 2 - offsetX, cardYOffset + ptY - TEXT_GLOW_SIZE / 2); - + if (isAnimationPanel || cardWidth < 200) { imagePanel.setScalingType(ScalingType.nearestNeighbor); } else { @@ -842,7 +842,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti dayNightButton.setIcon(new ImageIcon(transformIcon)); } } - + if (counterPanel != null) { updateCounters(card); } @@ -1161,7 +1161,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti this.gameCard = this.temporary; this.temporary = null; update(this.gameCard); - } + } } String temp = this.gameCard.getAlternateName(); this.gameCard.setAlternateName(this.gameCard.getOriginalName()); diff --git a/Mage.Sets/src/mage/sets/alliances/AesthirGlider.java b/Mage.Sets/src/mage/sets/alliances/AesthirGlider1.java similarity index 91% rename from Mage.Sets/src/mage/sets/alliances/AesthirGlider.java rename to Mage.Sets/src/mage/sets/alliances/AesthirGlider1.java index 151644e67f..09b57214a0 100644 --- a/Mage.Sets/src/mage/sets/alliances/AesthirGlider.java +++ b/Mage.Sets/src/mage/sets/alliances/AesthirGlider1.java @@ -39,9 +39,9 @@ import mage.constants.Rarity; * * @author Sir-Speshkitty */ -public class AesthirGlider extends CardImpl { +public class AesthirGlider1 extends CardImpl { - public AesthirGlider(UUID ownerId) { + public AesthirGlider1(UUID ownerId) { super(ownerId, 156, "Aesthir Glider", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); this.expansionSetCode = "ALL"; this.subtype.add("Bird"); @@ -54,12 +54,12 @@ public class AesthirGlider extends CardImpl { this.addAbility(new CantBlockAbility()); } - public AesthirGlider(final AesthirGlider card) { + public AesthirGlider1(final AesthirGlider1 card) { super(card); } @Override - public AesthirGlider copy() { - return new AesthirGlider(this); + public AesthirGlider1 copy() { + return new AesthirGlider1(this); } } diff --git a/Mage.Sets/src/mage/sets/alliances/AesthirGlider2.java b/Mage.Sets/src/mage/sets/alliances/AesthirGlider2.java new file mode 100644 index 0000000000..4436d4a430 --- /dev/null +++ b/Mage.Sets/src/mage/sets/alliances/AesthirGlider2.java @@ -0,0 +1,52 @@ +/* + * 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; + +/** + * + * @author LoneFox + */ +public class AesthirGlider2 extends mage.sets.alliances.AesthirGlider1 { + + public AesthirGlider2(UUID ownerId) { + super(ownerId); + this.cardNumber = 157; + this.expansionSetCode = "ALL"; + } + + public AesthirGlider2(final AesthirGlider2 card) { + super(card); + } + + @Override + public AesthirGlider2 copy() { + return new AesthirGlider2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/alliances/SoldeviSage.java b/Mage.Sets/src/mage/sets/alliances/SoldeviSage1.java similarity index 95% rename from Mage.Sets/src/mage/sets/alliances/SoldeviSage.java rename to Mage.Sets/src/mage/sets/alliances/SoldeviSage1.java index 03cd710c07..23be1a5fc3 100644 --- a/Mage.Sets/src/mage/sets/alliances/SoldeviSage.java +++ b/Mage.Sets/src/mage/sets/alliances/SoldeviSage1.java @@ -53,9 +53,9 @@ import mage.target.common.TargetControlledPermanent; * * @author Quercitron */ -public class SoldeviSage extends CardImpl { +public class SoldeviSage1 extends CardImpl { - public SoldeviSage(UUID ownerId) { + public SoldeviSage1(UUID ownerId) { super(ownerId, 51, "Soldevi Sage", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.expansionSetCode = "ALL"; this.subtype.add("Human"); @@ -70,13 +70,13 @@ public class SoldeviSage extends CardImpl { this.addAbility(ability); } - public SoldeviSage(final SoldeviSage card) { + public SoldeviSage1(final SoldeviSage1 card) { super(card); } @Override - public SoldeviSage copy() { - return new SoldeviSage(this); + public SoldeviSage1 copy() { + return new SoldeviSage1(this); } } @@ -86,7 +86,7 @@ class SoldeviSageEffect extends OneShotEffect { super(Outcome.DrawCard); this.staticText = "Draw three cards, then discard one of them"; } - + public SoldeviSageEffect(final SoldeviSageEffect effect) { super(effect); } @@ -95,7 +95,7 @@ class SoldeviSageEffect extends OneShotEffect { public SoldeviSageEffect copy() { return new SoldeviSageEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); @@ -108,7 +108,7 @@ class SoldeviSageEffect extends OneShotEffect { drawnCards.add(cardId); } } - + if (drawnCards.size() > 0) { TargetCard cardToDiscard = new TargetCard(Zone.PICK, new FilterCard("card to discard")); cardToDiscard.setNotTarget(true); @@ -119,10 +119,10 @@ class SoldeviSageEffect extends OneShotEffect { } } } - + return true; } return false; } - + } diff --git a/Mage.Sets/src/mage/sets/alliances/SoldeviSage2.java b/Mage.Sets/src/mage/sets/alliances/SoldeviSage2.java new file mode 100644 index 0000000000..4705fe539b --- /dev/null +++ b/Mage.Sets/src/mage/sets/alliances/SoldeviSage2.java @@ -0,0 +1,52 @@ +/* + * 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; + +/** + * + * @author LoneFox + */ +public class SoldeviSage2 extends mage.sets.alliances.SoldeviSage1 { + + public SoldeviSage2(UUID ownerId) { + super(ownerId); + this.cardNumber = 52; + this.expansionSetCode = "ALL"; + } + + public SoldeviSage2(final SoldeviSage2 card) { + super(card); + } + + @Override + public SoldeviSage2 copy() { + return new SoldeviSage2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/avacynrestored/RainOfThorns.java b/Mage.Sets/src/mage/sets/avacynrestored/RainOfThorns.java index 7fd409af16..84aa884426 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/RainOfThorns.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/RainOfThorns.java @@ -32,7 +32,7 @@ import mage.constants.Rarity; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.common.FilterLandPermanent; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; @@ -59,7 +59,7 @@ public class RainOfThorns extends CardImpl { Mode mode1 = new Mode(); mode1.getEffects().add(new DestroyTargetEffect()); - mode1.getTargets().add(new TargetPermanent(new FilterEnchantment())); + mode1.getTargets().add(new TargetPermanent(new FilterEnchantmentPermanent())); this.getSpellAbility().addMode(mode1); Mode mode2 = new Mode(); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KitsuneMystic.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KitsuneMystic.java index 60ab64daaa..566d4f8dba 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KitsuneMystic.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KitsuneMystic.java @@ -42,7 +42,7 @@ import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.FlipSourceEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.Predicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -88,7 +88,7 @@ public class KitsuneMystic extends CardImpl { class AutumnTailKitsuneSage extends Token { - private static final FilterEnchantment filter = new FilterEnchantment("Aura attached to a creature"); + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Aura attached to a creature"); static { filter.add(new AttachmentAttachedToCardTypePredicate(CardType.CREATURE)); diff --git a/Mage.Sets/src/mage/sets/classicsixthedition/SoldeviSage.java b/Mage.Sets/src/mage/sets/classicsixthedition/SoldeviSage.java index 67da756257..09ccbe39bf 100644 --- a/Mage.Sets/src/mage/sets/classicsixthedition/SoldeviSage.java +++ b/Mage.Sets/src/mage/sets/classicsixthedition/SoldeviSage.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author Quercitron */ -public class SoldeviSage extends mage.sets.alliances.SoldeviSage { +public class SoldeviSage extends mage.sets.alliances.SoldeviSage1 { public SoldeviSage(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/dissension/Dovescape.java b/Mage.Sets/src/mage/sets/dissension/Dovescape.java index 52f70eed8e..a727597c13 100644 --- a/Mage.Sets/src/mage/sets/dissension/Dovescape.java +++ b/Mage.Sets/src/mage/sets/dissension/Dovescape.java @@ -37,6 +37,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Rarity; +import mage.constants.SetTargetPointer; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -49,7 +50,7 @@ import mage.game.stack.Spell; * @author emerald000 */ public class Dovescape extends CardImpl { - + private static final FilterSpell filter = new FilterSpell("a noncreature spell"); static { filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); @@ -61,7 +62,7 @@ public class Dovescape extends CardImpl { // Whenever a player casts a noncreature spell, counter that spell. That player puts X 1/1 white and blue Bird creature tokens with flying onto the battlefield, where X is the spell's converted mana cost. - this.addAbility(new SpellCastAllTriggeredAbility(new DovescapeEffect(), filter, false, true)); + this.addAbility(new SpellCastAllTriggeredAbility(new DovescapeEffect(), filter, false, SetTargetPointer.SPELL)); } public Dovescape(final Dovescape card) { @@ -75,21 +76,21 @@ public class Dovescape extends CardImpl { } class DovescapeEffect extends OneShotEffect { - + DovescapeEffect() { super(Outcome.Benefit); this.staticText = "counter that spell. That player puts X 1/1 white and blue Bird creature tokens with flying onto the battlefield, where X is the spell's converted mana cost"; } - + DovescapeEffect(final DovescapeEffect effect) { super(effect); } - + @Override public DovescapeEffect copy() { return new DovescapeEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Spell spell = game.getStack().getSpell(this.getTargetPointer().getFirst(game, source)); diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/WearTear.java b/Mage.Sets/src/mage/sets/dragonsmaze/WearTear.java index 7b68dd26a3..b17b272266 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/WearTear.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/WearTear.java @@ -32,7 +32,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.SplitCard; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.target.Target; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; @@ -56,7 +56,7 @@ public class WearTear extends SplitCard { // Tear // Destroy target enchantment. getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect()); - target = new TargetPermanent(new FilterEnchantment()); + target = new TargetPermanent(new FilterEnchantmentPermanent()); getRightHalfCard().getSpellAbility().addTarget(target); } diff --git a/Mage.Sets/src/mage/sets/eighthedition/OrcishSpy.java b/Mage.Sets/src/mage/sets/eighthedition/OrcishSpy.java index 8dc7c9a562..20914435fb 100644 --- a/Mage.Sets/src/mage/sets/eighthedition/OrcishSpy.java +++ b/Mage.Sets/src/mage/sets/eighthedition/OrcishSpy.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author anonymous */ -public class OrcishSpy extends mage.sets.fallenempires.OrcishSpy { +public class OrcishSpy extends mage.sets.fallenempires.OrcishSpy1 { public OrcishSpy(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/elvesvsgoblins/AmbushCommander.java b/Mage.Sets/src/mage/sets/elvesvsgoblins/AmbushCommander.java index f4e8e374ac..673340d63a 100644 --- a/Mage.Sets/src/mage/sets/elvesvsgoblins/AmbushCommander.java +++ b/Mage.Sets/src/mage/sets/elvesvsgoblins/AmbushCommander.java @@ -41,8 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledCreaturePermanent; @@ -55,9 +55,11 @@ import mage.target.common.TargetCreaturePermanent; public class AmbushCommander extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an Elf"); + private static final FilterControlledPermanent filter2 = new FilterControlledPermanent("Forests you control"); static { filter.add(new SubtypePredicate("Elf")); + filter2.add(new SubtypePredicate("Forest")); } public AmbushCommander(UUID ownerId) { @@ -69,9 +71,11 @@ public class AmbushCommander extends CardImpl { this.toughness = new MageInt(2); // Forests you control are 1/1 green Elf creatures that are still lands. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAllEffect(new AmbushCommanderToken(), "lands", new FilterPermanent("Forest", "Forests"), Duration.WhileOnBattlefield))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAllEffect(new AmbushCommanderToken(), + "lands", filter2, Duration.WhileOnBattlefield))); // {1}{G}, Sacrifice an Elf: Target creature gets +3/+3 until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3,3, Duration.EndOfTurn), new ManaCostsImpl("{1}{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3,3, Duration.EndOfTurn), + new ManaCostsImpl("{1}{G}")); ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1, filter, true))); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); @@ -97,4 +101,4 @@ class AmbushCommanderToken extends Token { color.setGreen(true); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/eventide/SootImp.java b/Mage.Sets/src/mage/sets/eventide/SootImp.java index 94f98918dc..8ea50c3e5a 100644 --- a/Mage.Sets/src/mage/sets/eventide/SootImp.java +++ b/Mage.Sets/src/mage/sets/eventide/SootImp.java @@ -40,11 +40,11 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Rarity; +import mage.constants.SetTargetPointer; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; -import mage.game.stack.Spell; import mage.players.Player; /** @@ -52,9 +52,9 @@ import mage.players.Player; * @author jeffwadsworth */ public class SootImp extends CardImpl { - + static final private FilterSpell filter = new FilterSpell("a nonblack spell"); - + static { filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); } @@ -69,10 +69,10 @@ public class SootImp extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - + // Whenever a player casts a nonblack spell, that player loses 1 life. - this.addAbility(new SpellCastAllTriggeredAbility(new SootImpEffect(), filter, false, true)); - + this.addAbility(new SpellCastAllTriggeredAbility(new SootImpEffect(), filter, false, SetTargetPointer.PLAYER)); + } public SootImp(final SootImp card) { @@ -103,11 +103,7 @@ class SootImpEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); - Player caster = null; - if (spell != null) { - caster = game.getPlayer(spell.getControllerId()); - } + Player caster = game.getPlayer(targetPointer.getFirst(game, source)); if (caster != null) { caster.loseLife(1, game); return true; diff --git a/Mage.Sets/src/mage/sets/exodus/ManaBreach.java b/Mage.Sets/src/mage/sets/exodus/ManaBreach.java new file mode 100644 index 0000000000..9dbb3b6fd2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/exodus/ManaBreach.java @@ -0,0 +1,103 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.exodus; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SpellCastAllTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.SetTargetPointer; +import mage.constants.Zone; +import mage.filter.FilterSpell; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.permanent.ControllerIdPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author LoneFox + + */ +public class ManaBreach extends CardImpl { + + public ManaBreach(UUID ownerId) { + super(ownerId, 38, "Mana Breach", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); + this.expansionSetCode = "EXO"; + + // Whenever a player casts a spell, that player returns a land he or she controls to its owner's hand. + this.addAbility(new SpellCastAllTriggeredAbility(new ManaBreachEffect(), new FilterSpell(), false, SetTargetPointer.PLAYER)); + } + + public ManaBreach(final ManaBreach card) { + super(card); + } + + @Override + public ManaBreach copy() { + return new ManaBreach(this); + } +} + +class ManaBreachEffect extends OneShotEffect { + + public ManaBreachEffect() { + super(Outcome.Detriment); + staticText="that player returns a land he or she controls to its owner's hand."; + } + + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(targetPointer.getFirst(game, source)); + if(player != null) { + FilterLandPermanent filter = new FilterLandPermanent("a land you control"); + filter.add(new ControllerIdPredicate(player.getId())); + TargetLandPermanent toBounce = new TargetLandPermanent(1, 1, filter, true); + if(player.chooseTarget(Outcome.ReturnToHand, toBounce, source, game)) { + Permanent land = game.getPermanent(toBounce.getTargets().get(0)); + land.moveToZone(Zone.HAND, source.getSourceId(), game, false); + } + return true; + } + return false; + } + + public ManaBreachEffect(final ManaBreachEffect effect) { + super(effect); + } + + public ManaBreachEffect copy() { + return new ManaBreachEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs.java b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs1.java similarity index 92% rename from Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs.java rename to Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs1.java index 0b13d1b92d..88b314aa28 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs.java +++ b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs1.java @@ -43,14 +43,14 @@ import mage.filter.predicate.mageobject.PowerPredicate; * * @author dustinconrad */ -public class BrassclawOrcs extends CardImpl { +public class BrassclawOrcs1 extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); } - public BrassclawOrcs(UUID ownerId) { + public BrassclawOrcs1(UUID ownerId) { super(ownerId, 100, "Brassclaw Orcs", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.expansionSetCode = "FEM"; this.subtype.add("Orc"); @@ -63,12 +63,12 @@ public class BrassclawOrcs extends CardImpl { } - public BrassclawOrcs(final BrassclawOrcs card) { + public BrassclawOrcs1(final BrassclawOrcs1 card) { super(card); } @Override - public BrassclawOrcs copy() { - return new BrassclawOrcs(this); + public BrassclawOrcs1 copy() { + return new BrassclawOrcs1(this); } } diff --git a/Mage/src/mage/filter/common/FilterEnchantment.java b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs2.java similarity index 73% rename from Mage/src/mage/filter/common/FilterEnchantment.java rename to Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs2.java index af5050e7d7..9e71d5b62a 100644 --- a/Mage/src/mage/filter/common/FilterEnchantment.java +++ b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs2.java @@ -1,16 +1,16 @@ /* * 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 @@ -20,39 +20,33 @@ * 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.fallenempires; -package mage.filter.common; - -import mage.constants.CardType; -import mage.filter.FilterPermanent; -import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; /** * - * @author nantuko + * @author LoneFox + */ -public class FilterEnchantment extends FilterPermanent { +public class BrassclawOrcs2 extends mage.sets.fallenempires.BrassclawOrcs1 { - public FilterEnchantment() { - this("enchantment"); + public BrassclawOrcs2(UUID ownerId) { + super(ownerId); + this.cardNumber = 101; } - public FilterEnchantment(String name) { - super(name); - this.add(new CardTypePredicate(CardType.ENCHANTMENT)); - } - - public FilterEnchantment(final FilterEnchantment filter) { - super(filter); + public BrassclawOrcs2(final BrassclawOrcs2 card) { + super(card); } @Override - public FilterEnchantment copy() { - return new FilterEnchantment(this); + public BrassclawOrcs2 copy() { + return new BrassclawOrcs2(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs3.java b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs3.java new file mode 100644 index 0000000000..68c5384e0b --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs3.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class BrassclawOrcs3 extends mage.sets.fallenempires.BrassclawOrcs1 { + + public BrassclawOrcs3(UUID ownerId) { + super(ownerId); + this.cardNumber = 102; + } + + public BrassclawOrcs3(final BrassclawOrcs3 card) { + super(card); + } + + @Override + public BrassclawOrcs3 copy() { + return new BrassclawOrcs3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs4.java b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs4.java new file mode 100644 index 0000000000..54f8a164de --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/BrassclawOrcs4.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class BrassclawOrcs4 extends mage.sets.fallenempires.BrassclawOrcs1 { + + public BrassclawOrcs4(UUID ownerId) { + super(ownerId); + this.cardNumber = 103; + } + + public BrassclawOrcs4(final BrassclawOrcs4 card) { + super(card); + } + + @Override + public BrassclawOrcs4 copy() { + return new BrassclawOrcs4(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon1.java similarity index 89% rename from Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon.java rename to Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon1.java index 12933f7f7d..a8227eb3ac 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon.java +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon1.java @@ -45,9 +45,9 @@ import mage.target.common.TargetCreaturePermanent; * * @author LevelX2 */ -public class GoblinChirurgeon extends CardImpl { +public class GoblinChirurgeon1 extends CardImpl { - public GoblinChirurgeon(UUID ownerId) { + public GoblinChirurgeon1(UUID ownerId) { super(ownerId, 110, "Goblin Chirurgeon", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}"); this.expansionSetCode = "FEM"; this.subtype.add("Goblin"); @@ -56,19 +56,19 @@ public class GoblinChirurgeon extends CardImpl { this.toughness = new MageInt(2); // Sacrifice a Goblin: Regenerate target creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new RegenerateTargetEffect(), + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new RegenerateTargetEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("Goblin","a Goblin")))); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } - public GoblinChirurgeon(final GoblinChirurgeon card) { + public GoblinChirurgeon1(final GoblinChirurgeon1 card) { super(card); } @Override - public GoblinChirurgeon copy() { - return new GoblinChirurgeon(this); + public GoblinChirurgeon1 copy() { + return new GoblinChirurgeon1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon2.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon2.java new file mode 100644 index 0000000000..a1b64fafef --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon2.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class GoblinChirurgeon2 extends mage.sets.fallenempires.GoblinChirurgeon1 { + + public GoblinChirurgeon2(UUID ownerId) { + super(ownerId); + this.cardNumber = 111; + } + + public GoblinChirurgeon2(final GoblinChirurgeon2 card) { + super(card); + } + + @Override + public GoblinChirurgeon2 copy() { + return new GoblinChirurgeon2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon3.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon3.java new file mode 100644 index 0000000000..06e937dddc --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinChirurgeon3.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class GoblinChirurgeon3 extends mage.sets.fallenempires.GoblinChirurgeon1 { + + public GoblinChirurgeon3(UUID ownerId) { + super(ownerId); + this.cardNumber = 112; + } + + public GoblinChirurgeon3(final GoblinChirurgeon3 card) { + super(card); + } + + @Override + public GoblinChirurgeon3 copy() { + return new GoblinChirurgeon3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/HighTide.java b/Mage.Sets/src/mage/sets/fallenempires/HighTide1.java similarity index 93% rename from Mage.Sets/src/mage/sets/fallenempires/HighTide.java rename to Mage.Sets/src/mage/sets/fallenempires/HighTide1.java index a05092aa2e..85764195d6 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/HighTide.java +++ b/Mage.Sets/src/mage/sets/fallenempires/HighTide1.java @@ -50,9 +50,9 @@ import mage.target.targetpointer.FixedTarget; * * @author Plopman */ -public class HighTide extends CardImpl { +public class HighTide1 extends CardImpl { - public HighTide(UUID ownerId) { + public HighTide1(UUID ownerId) { super(ownerId, 35, "High Tide", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{U}"); this.expansionSetCode = "FEM"; @@ -61,13 +61,13 @@ public class HighTide extends CardImpl { } - public HighTide(final HighTide card) { + public HighTide1(final HighTide1 card) { super(card); } @Override - public HighTide copy() { - return new HighTide(this); + public HighTide1 copy() { + return new HighTide1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/HighTide2.java b/Mage.Sets/src/mage/sets/fallenempires/HighTide2.java new file mode 100644 index 0000000000..2d9a56b12b --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/HighTide2.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class HighTide2 extends mage.sets.fallenempires.HighTide1 { + + public HighTide2(UUID ownerId) { + super(ownerId); + this.cardNumber = 36; + } + + public HighTide2(final HighTide2 card) { + super(card); + } + + @Override + public HighTide2 copy() { + return new HighTide2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/HighTide3.java b/Mage.Sets/src/mage/sets/fallenempires/HighTide3.java new file mode 100644 index 0000000000..20e98c9c6b --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/HighTide3.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class HighTide3 extends mage.sets.fallenempires.HighTide1 { + + public HighTide3(UUID ownerId) { + super(ownerId); + this.cardNumber = 37; + } + + public HighTide3(final HighTide3 card) { + super(card); + } + + @Override + public HighTide3 copy() { + return new HighTide3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy.java b/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy1.java similarity index 91% rename from Mage.Sets/src/mage/sets/fallenempires/OrcishSpy.java rename to Mage.Sets/src/mage/sets/fallenempires/OrcishSpy1.java index ffe94a579d..81014f1c09 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy.java +++ b/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy1.java @@ -42,9 +42,9 @@ import mage.constants.Zone; * * @author anonymous */ -public class OrcishSpy extends CardImpl { +public class OrcishSpy1 extends CardImpl { - public OrcishSpy(UUID ownerId) { + public OrcishSpy1(UUID ownerId) { super(ownerId, 124, "Orcish Spy", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}"); this.expansionSetCode = "FEM"; this.subtype.add("Orc"); @@ -57,12 +57,12 @@ public class OrcishSpy extends CardImpl { this.addAbility(ability); } - public OrcishSpy(final OrcishSpy card) { + public OrcishSpy1(final OrcishSpy1 card) { super(card); } @Override - public OrcishSpy copy() { - return new OrcishSpy(this); + public OrcishSpy1 copy() { + return new OrcishSpy1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy2.java b/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy2.java new file mode 100644 index 0000000000..b7e5b5b023 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy2.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrcishSpy2 extends mage.sets.fallenempires.OrcishSpy1 { + + public OrcishSpy2(UUID ownerId) { + super(ownerId); + this.cardNumber = 125; + } + + public OrcishSpy2(final OrcishSpy2 card) { + super(card); + } + + @Override + public OrcishSpy2 copy() { + return new OrcishSpy2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy3.java b/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy3.java new file mode 100644 index 0000000000..96d130cbcb --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrcishSpy3.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrcishSpy3 extends mage.sets.fallenempires.OrcishSpy1 { + + public OrcishSpy3(UUID ownerId) { + super(ownerId); + this.cardNumber = 126; + } + + public OrcishSpy3(final OrcishSpy3 card) { + super(card); + } + + @Override + public OrcishSpy3 copy() { + return new OrcishSpy3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/Thallid.java b/Mage.Sets/src/mage/sets/fallenempires/Thallid1.java similarity index 88% rename from Mage.Sets/src/mage/sets/fallenempires/Thallid.java rename to Mage.Sets/src/mage/sets/fallenempires/Thallid1.java index fbd413fcba..9ff4ba3937 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/Thallid.java +++ b/Mage.Sets/src/mage/sets/fallenempires/Thallid1.java @@ -34,21 +34,21 @@ import mage.constants.Rarity; * * @author North */ -public class Thallid extends mage.sets.timeshifted.Thallid { +public class Thallid1 extends mage.sets.timeshifted.Thallid { - public Thallid(UUID ownerId) { + public Thallid1(UUID ownerId) { super(ownerId); this.cardNumber = 87; this.expansionSetCode = "FEM"; this.rarity = Rarity.COMMON; } - public Thallid(final Thallid card) { + public Thallid1(final Thallid1 card) { super(card); } @Override - public Thallid copy() { - return new Thallid(this); + public Thallid1 copy() { + return new Thallid1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/Thallid2.java b/Mage.Sets/src/mage/sets/fallenempires/Thallid2.java new file mode 100644 index 0000000000..788cc6fb20 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/Thallid2.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.fallenempires; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author North + */ +public class Thallid2 extends mage.sets.timeshifted.Thallid { + + public Thallid2(UUID ownerId) { + super(ownerId); + this.cardNumber = 88; + this.expansionSetCode = "FEM"; + this.rarity = Rarity.COMMON; + } + + public Thallid2(final Thallid2 card) { + super(card); + } + + @Override + public Thallid2 copy() { + return new Thallid2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/Thallid3.java b/Mage.Sets/src/mage/sets/fallenempires/Thallid3.java new file mode 100644 index 0000000000..aadb4f7f24 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/Thallid3.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.fallenempires; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author North + */ +public class Thallid3 extends mage.sets.timeshifted.Thallid { + + public Thallid3(UUID ownerId) { + super(ownerId); + this.cardNumber = 89; + this.expansionSetCode = "FEM"; + this.rarity = Rarity.COMMON; + } + + public Thallid3(final Thallid3 card) { + super(card); + } + + @Override + public Thallid3 copy() { + return new Thallid3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/Thallid4.java b/Mage.Sets/src/mage/sets/fallenempires/Thallid4.java new file mode 100644 index 0000000000..317ecb5acd --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/Thallid4.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.fallenempires; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author North + */ +public class Thallid4 extends mage.sets.timeshifted.Thallid { + + public Thallid4(UUID ownerId) { + super(ownerId); + this.cardNumber = 90; + this.expansionSetCode = "FEM"; + this.rarity = Rarity.COMMON; + } + + public Thallid4(final Thallid4 card) { + super(card); + } + + @Override + public Thallid4 copy() { + return new Thallid4(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/ThornThallid.java b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid1.java similarity index 92% rename from Mage.Sets/src/mage/sets/fallenempires/ThornThallid.java rename to Mage.Sets/src/mage/sets/fallenempires/ThornThallid1.java index 61a0094efe..eb476b244b 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/ThornThallid.java +++ b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid1.java @@ -47,9 +47,9 @@ import mage.target.common.TargetCreatureOrPlayer; * * @author fireshoes */ -public class ThornThallid extends CardImpl { +public class ThornThallid1 extends CardImpl { - public ThornThallid(UUID ownerId) { + public ThornThallid1(UUID ownerId) { super(ownerId, 96, "Thorn Thallid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}{G}"); this.expansionSetCode = "FEM"; this.subtype.add("Fungus"); @@ -59,19 +59,19 @@ public class ThornThallid extends CardImpl { // At the beginning of your upkeep, put a spore counter on Thorn Thallid. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.SPORE.createInstance()), TargetController.YOU, false)); // Remove three spore counters from Thorn Thallid: Thorn Thallid deals 1 damage to target creature or player. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(1), + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new DamageTargetEffect(1), new RemoveCountersSourceCost(CounterType.SPORE.createInstance(3))); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } - public ThornThallid(final ThornThallid card) { + public ThornThallid1(final ThornThallid1 card) { super(card); } @Override - public ThornThallid copy() { - return new ThornThallid(this); + public ThornThallid1 copy() { + return new ThornThallid1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/ThornThallid2.java b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid2.java new file mode 100644 index 0000000000..17b7c45c5f --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid2.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class ThornThallid2 extends mage.sets.fallenempires.ThornThallid1 { + + public ThornThallid2(UUID ownerId) { + super(ownerId); + this.cardNumber = 97; + } + + public ThornThallid2(final ThornThallid2 card) { + super(card); + } + + @Override + public ThornThallid2 copy() { + return new ThornThallid2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/ThornThallid3.java b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid3.java new file mode 100644 index 0000000000..ecbc9a67d0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid3.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class ThornThallid3 extends mage.sets.fallenempires.ThornThallid1 { + + public ThornThallid3(UUID ownerId) { + super(ownerId); + this.cardNumber = 98; + } + + public ThornThallid3(final ThornThallid3 card) { + super(card); + } + + @Override + public ThornThallid3 copy() { + return new ThornThallid3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/ThornThallid4.java b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid4.java new file mode 100644 index 0000000000..07d2856033 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/ThornThallid4.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class ThornThallid4 extends mage.sets.fallenempires.ThornThallid1 { + + public ThornThallid4(UUID ownerId) { + super(ownerId); + this.cardNumber = 99; + } + + public ThornThallid4(final ThornThallid4 card) { + super(card); + } + + @Override + public ThornThallid4 copy() { + return new ThornThallid4(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers.java b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers1.java similarity index 85% rename from Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers.java rename to Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers1.java index 9e8db6797a..f7386996f7 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers.java +++ b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers1.java @@ -33,20 +33,20 @@ import java.util.UUID; * * @author North */ -public class VodalianSoldiers extends mage.sets.fifthedition.VodalianSoldiers { +public class VodalianSoldiers1 extends mage.sets.fifthedition.VodalianSoldiers { - public VodalianSoldiers(UUID ownerId) { + public VodalianSoldiers1(UUID ownerId) { super(ownerId); this.cardNumber = 62; this.expansionSetCode = "FEM"; } - public VodalianSoldiers(final VodalianSoldiers card) { + public VodalianSoldiers1(final VodalianSoldiers1 card) { super(card); } @Override - public VodalianSoldiers copy() { - return new VodalianSoldiers(this); + public VodalianSoldiers1 copy() { + return new VodalianSoldiers1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers2.java b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers2.java new file mode 100644 index 0000000000..afdba775fc --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers2.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author North + */ +public class VodalianSoldiers2 extends mage.sets.fifthedition.VodalianSoldiers { + + public VodalianSoldiers2(UUID ownerId) { + super(ownerId); + this.cardNumber = 63; + this.expansionSetCode = "FEM"; + } + + public VodalianSoldiers2(final VodalianSoldiers2 card) { + super(card); + } + + @Override + public VodalianSoldiers2 copy() { + return new VodalianSoldiers2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers3.java b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers3.java new file mode 100644 index 0000000000..30ec245c98 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers3.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author North + */ +public class VodalianSoldiers3 extends mage.sets.fifthedition.VodalianSoldiers { + + public VodalianSoldiers3(UUID ownerId) { + super(ownerId); + this.cardNumber = 64; + this.expansionSetCode = "FEM"; + } + + public VodalianSoldiers3(final VodalianSoldiers3 card) { + super(card); + } + + @Override + public VodalianSoldiers3 copy() { + return new VodalianSoldiers3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers4.java b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers4.java new file mode 100644 index 0000000000..46c9b469e2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/VodalianSoldiers4.java @@ -0,0 +1,52 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author North + */ +public class VodalianSoldiers4 extends mage.sets.fifthedition.VodalianSoldiers { + + public VodalianSoldiers4(UUID ownerId) { + super(ownerId); + this.cardNumber = 65; + this.expansionSetCode = "FEM"; + } + + public VodalianSoldiers4(final VodalianSoldiers4 card) { + super(card); + } + + @Override + public VodalianSoldiers4 copy() { + return new VodalianSoldiers4(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fifthedition/BrassclawOrcs.java b/Mage.Sets/src/mage/sets/fifthedition/BrassclawOrcs.java index 88a923cecf..598361a68b 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/BrassclawOrcs.java +++ b/Mage.Sets/src/mage/sets/fifthedition/BrassclawOrcs.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author dustinconrad */ -public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs { +public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs1 { public BrassclawOrcs(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/fifthedition/Torture.java b/Mage.Sets/src/mage/sets/fifthedition/Torture.java index d17b911323..1ad9ad9101 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/Torture.java +++ b/Mage.Sets/src/mage/sets/fifthedition/Torture.java @@ -34,7 +34,7 @@ import java.util.UUID; * @author jeffwadsworth */ -public class Torture extends mage.sets.homelands.Torture { +public class Torture extends mage.sets.homelands.Torture1 { public Torture(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/homelands/AbbeyMatron.java b/Mage.Sets/src/mage/sets/homelands/AbbeyMatron1.java similarity index 90% rename from Mage.Sets/src/mage/sets/homelands/AbbeyMatron.java rename to Mage.Sets/src/mage/sets/homelands/AbbeyMatron1.java index 6145b1d0c5..66a5bc77c7 100644 --- a/Mage.Sets/src/mage/sets/homelands/AbbeyMatron.java +++ b/Mage.Sets/src/mage/sets/homelands/AbbeyMatron1.java @@ -44,10 +44,10 @@ import mage.constants.Zone; * * @author Sir-Speshkitty */ -public class AbbeyMatron extends CardImpl { +public class AbbeyMatron1 extends CardImpl { - public AbbeyMatron(UUID ownerId) { - super(ownerId, 103, "Abbey Matron", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); + public AbbeyMatron1(UUID ownerId) { + super(ownerId, 102, "Abbey Matron", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); this.expansionSetCode = "HML"; this.subtype.add("Human"); this.subtype.add("Cleric"); @@ -60,12 +60,12 @@ public class AbbeyMatron extends CardImpl { this.addAbility(ability); } - public AbbeyMatron(final AbbeyMatron card) { + public AbbeyMatron1(final AbbeyMatron1 card) { super(card); } @Override - public AbbeyMatron copy() { - return new AbbeyMatron(this); + public AbbeyMatron1 copy() { + return new AbbeyMatron1(this); } } diff --git a/Mage.Sets/src/mage/sets/homelands/AbbeyMatron2.java b/Mage.Sets/src/mage/sets/homelands/AbbeyMatron2.java new file mode 100644 index 0000000000..63a97db67a --- /dev/null +++ b/Mage.Sets/src/mage/sets/homelands/AbbeyMatron2.java @@ -0,0 +1,52 @@ +/* + * 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.homelands; + +import java.util.UUID; + +/** + * + * @author LoneFox + */ +public class AbbeyMatron2 extends mage.sets.homelands.AbbeyMatron1 { + + public AbbeyMatron2(UUID ownerId) { + super(ownerId); + this.cardNumber = 103; + this.expansionSetCode = "HML"; + } + + public AbbeyMatron2(final AbbeyMatron2 card) { + super(card); + } + + @Override + public AbbeyMatron2 copy() { + return new AbbeyMatron2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/homelands/CemeteryGate.java b/Mage.Sets/src/mage/sets/homelands/CemeteryGate1.java similarity index 90% rename from Mage.Sets/src/mage/sets/homelands/CemeteryGate.java rename to Mage.Sets/src/mage/sets/homelands/CemeteryGate1.java index b88935ab7c..6737e58721 100644 --- a/Mage.Sets/src/mage/sets/homelands/CemeteryGate.java +++ b/Mage.Sets/src/mage/sets/homelands/CemeteryGate1.java @@ -42,16 +42,16 @@ import mage.filter.predicate.mageobject.ColorPredicate; * * @author fireshoes */ -public class CemeteryGate extends CardImpl { - +public class CemeteryGate1 extends CardImpl { + private static final FilterCard filter = new FilterCard("Black"); - + static { filter.add(new ColorPredicate(ObjectColor.BLACK)); } - public CemeteryGate(UUID ownerId) { - super(ownerId, 5, "Cemetery Gate", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + public CemeteryGate1(UUID ownerId) { + super(ownerId, 4, "Cemetery Gate", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.expansionSetCode = "HML"; this.subtype.add("Wall"); this.power = new MageInt(0); @@ -59,17 +59,17 @@ public class CemeteryGate extends CardImpl { // Defender this.addAbility(DefenderAbility.getInstance()); - + // Protection from black this.addAbility(new ProtectionAbility(filter)); } - public CemeteryGate(final CemeteryGate card) { + public CemeteryGate1(final CemeteryGate1 card) { super(card); } @Override - public CemeteryGate copy() { - return new CemeteryGate(this); + public CemeteryGate1 copy() { + return new CemeteryGate1(this); } } diff --git a/Mage.Sets/src/mage/sets/homelands/CemeteryGate2.java b/Mage.Sets/src/mage/sets/homelands/CemeteryGate2.java new file mode 100644 index 0000000000..f1e2b3776a --- /dev/null +++ b/Mage.Sets/src/mage/sets/homelands/CemeteryGate2.java @@ -0,0 +1,52 @@ +/* + * 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.homelands; + +import java.util.UUID; + +/** + * + * @author LoneFox + */ +public class CemeteryGate2 extends mage.sets.homelands.CemeteryGate1 { + + public CemeteryGate2(UUID ownerId) { + super(ownerId); + this.cardNumber = 5; + this.expansionSetCode = "HML"; + } + + public CemeteryGate2(final CemeteryGate2 card) { + super(card); + } + + @Override + public CemeteryGate2 copy() { + return new CemeteryGate2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/homelands/Torture.java b/Mage.Sets/src/mage/sets/homelands/Torture1.java similarity index 92% rename from Mage.Sets/src/mage/sets/homelands/Torture.java rename to Mage.Sets/src/mage/sets/homelands/Torture1.java index fce655bf92..7806cd0b50 100644 --- a/Mage.Sets/src/mage/sets/homelands/Torture.java +++ b/Mage.Sets/src/mage/sets/homelands/Torture1.java @@ -48,11 +48,11 @@ import mage.target.common.TargetCreaturePermanent; * @author jeffwadsworth */ -public class Torture extends CardImpl { - +public class Torture1 extends CardImpl { + private static final String rule = "Testing rules"; - public Torture(UUID ownerId) { + public Torture1(UUID ownerId) { super(ownerId, 23, "Torture", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{B}"); this.expansionSetCode = "HML"; this.subtype.add("Aura"); @@ -64,7 +64,7 @@ public class Torture extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility)); Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); - + // {1}{B}: Put a -1/-1 counter on enchanted creature. //this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersAttachedEffect(CounterType.M1M1.createInstance(), rule), new ManaCostsImpl("[1}{B}"))); this.addAbility(new SimpleActivatedAbility( @@ -73,12 +73,12 @@ public class Torture extends CardImpl { new ManaCostsImpl("{1}{B}"))); } - public Torture(final Torture card) { + public Torture1(final Torture1 card) { super(card); } @Override - public Torture copy() { - return new Torture(this); + public Torture1 copy() { + return new Torture1(this); } } diff --git a/Mage.Sets/src/mage/sets/homelands/Torture2.java b/Mage.Sets/src/mage/sets/homelands/Torture2.java new file mode 100644 index 0000000000..48520a79ea --- /dev/null +++ b/Mage.Sets/src/mage/sets/homelands/Torture2.java @@ -0,0 +1,52 @@ +/* + * 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.homelands; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class Torture2 extends mage.sets.homelands.Torture1 { + + public Torture2(UUID ownerId) { + super(ownerId); + this.cardNumber = 24; + this.expansionSetCode = "HML"; + } + + public Torture2(final Torture2 card) { + super(card); + } + + @Override + public Torture2 copy() { + return new Torture2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/innistrad/Paraselene.java b/Mage.Sets/src/mage/sets/innistrad/Paraselene.java index 87bdfc9ec3..26287e76fd 100644 --- a/Mage.Sets/src/mage/sets/innistrad/Paraselene.java +++ b/Mage.Sets/src/mage/sets/innistrad/Paraselene.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.constants.Outcome; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -78,7 +78,7 @@ class ParaseleneEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { int count = 0; - for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterEnchantment(), source.getControllerId(), source.getSourceId(), game)) { + for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterEnchantmentPermanent(), source.getControllerId(), source.getSourceId(), game)) { if (permanent.destroy(source.getSourceId(), game, false)) { count++; } diff --git a/Mage.Sets/src/mage/sets/legends/InTheEyeOfChaos.java b/Mage.Sets/src/mage/sets/legends/InTheEyeOfChaos.java index 67e8dcf856..9b9bbd952e 100644 --- a/Mage.Sets/src/mage/sets/legends/InTheEyeOfChaos.java +++ b/Mage.Sets/src/mage/sets/legends/InTheEyeOfChaos.java @@ -36,6 +36,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Rarity; +import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -48,7 +49,7 @@ import mage.players.Player; * @author emerald000 */ public class InTheEyeOfChaos extends CardImpl { - + private static final FilterSpell filter = new FilterSpell("an instant spell"); static { filter.add(new CardTypePredicate(CardType.INSTANT)); @@ -61,7 +62,7 @@ public class InTheEyeOfChaos extends CardImpl { // Whenever a player casts an instant spell, counter it unless that player pays {X}, where X is its converted mana cost. - this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new InTheEyeOfChaosEffect(), filter, false, true)); + this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new InTheEyeOfChaosEffect(), filter, false, SetTargetPointer.SPELL)); } public InTheEyeOfChaos(final InTheEyeOfChaos card) { @@ -75,21 +76,21 @@ public class InTheEyeOfChaos extends CardImpl { } class InTheEyeOfChaosEffect extends OneShotEffect { - + InTheEyeOfChaosEffect() { super(Outcome.Detriment); this.staticText = "counter it unless that player pays {X}, where X is its converted mana cost"; } - + InTheEyeOfChaosEffect(final InTheEyeOfChaosEffect effect) { super(effect); } - + @Override public InTheEyeOfChaosEffect copy() { return new InTheEyeOfChaosEffect(this); } - + @Override public boolean apply(Game game, Ability source) { StackObject spell = game.getStack().getStackObject(targetPointer.getFirst(game, source)); diff --git a/Mage.Sets/src/mage/sets/legends/NetherVoid.java b/Mage.Sets/src/mage/sets/legends/NetherVoid.java index 9899b75a2d..e27e1a7bad 100644 --- a/Mage.Sets/src/mage/sets/legends/NetherVoid.java +++ b/Mage.Sets/src/mage/sets/legends/NetherVoid.java @@ -34,6 +34,7 @@ import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; +import mage.constants.SetTargetPointer; import mage.filter.FilterSpell; /** @@ -48,7 +49,7 @@ public class NetherVoid extends CardImpl { this.supertype.add("World"); // Whenever a player casts a spell, counter it unless that player pays {3}. - this.addAbility(new SpellCastAllTriggeredAbility(new CounterUnlessPaysEffect(new GenericManaCost(3)), new FilterSpell("a spell"), false, true)); + this.addAbility(new SpellCastAllTriggeredAbility(new CounterUnlessPaysEffect(new GenericManaCost(3)), new FilterSpell("a spell"), false, SetTargetPointer.SPELL)); } public NetherVoid(final NetherVoid card) { diff --git a/Mage.Sets/src/mage/sets/magicorigins/HelmOfTheGods.java b/Mage.Sets/src/mage/sets/magicorigins/HelmOfTheGods.java index 87d9ffb920..7881175896 100644 --- a/Mage.Sets/src/mage/sets/magicorigins/HelmOfTheGods.java +++ b/Mage.Sets/src/mage/sets/magicorigins/HelmOfTheGods.java @@ -40,7 +40,7 @@ import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.permanent.ControllerPredicate; /** @@ -48,8 +48,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; * @author fireshoes */ public class HelmOfTheGods extends CardImpl { - - private static final FilterEnchantment filter = new FilterEnchantment("enchantment you control"); + + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("enchantment you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); @@ -61,11 +61,11 @@ public class HelmOfTheGods extends CardImpl { this.subtype.add("Equipment"); // Equipped creature gets +1/+1 for each enchantment you control. - PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(new FilterEnchantment(filter)); + PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(new FilterEnchantmentPermanent(filter)); Effect effect = new BoostEquippedEffect(countEnchantments, countEnchantments); effect.setText("Equipped creature gets +1/+1 for each enchantment you control"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); - + // Equip {1} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); } diff --git a/Mage.Sets/src/mage/sets/magicorigins/StarfieldOfNyx.java b/Mage.Sets/src/mage/sets/magicorigins/StarfieldOfNyx.java index a6f4c884c2..9b3783f008 100644 --- a/Mage.Sets/src/mage/sets/magicorigins/StarfieldOfNyx.java +++ b/Mage.Sets/src/mage/sets/magicorigins/StarfieldOfNyx.java @@ -45,7 +45,6 @@ import mage.constants.SubLayer; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.FilterCard; -import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -62,11 +61,11 @@ import mage.target.common.TargetCardInGraveyard; * @author fireshoes */ public class StarfieldOfNyx extends CardImpl { - + private static final String rule1 = "As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost."; - + private static final FilterCard filterGraveyardEnchantment = new FilterCard("enchantment card from your graveyard"); - private static final FilterEnchantment filterEnchantmentYouControl = new FilterEnchantment("enchantment you control"); + private static final FilterEnchantmentPermanent filterEnchantmentYouControl = new FilterEnchantmentPermanent("enchantment you control"); static { filterEnchantmentYouControl.add(new ControllerPredicate(TargetController.YOU)); @@ -81,11 +80,11 @@ public class StarfieldOfNyx extends CardImpl { this.expansionSetCode = "ORI"; // At the beginning of your upkeep, you may return target enchantment card from your graveyard to the battlefield. - Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, + Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), TargetController.YOU, true); ability.addTarget(new TargetCardInGraveyard(filterGraveyardEnchantment)); this.addAbility(ability); - + // As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost. ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new StarfieldOfNyxEffect(), new PermanentsOnTheBattlefieldCondition(filterEnchantmentYouControl, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 4), rule1); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); @@ -109,7 +108,7 @@ class StarfieldOfNyxEffect extends ContinuousEffectImpl { filter.add(new AnotherPredicate()); filter.add(new OwnerPredicate(TargetController.YOU)); } - + public StarfieldOfNyxEffect() { super(Duration.WhileOnBattlefield, Outcome.BecomeCreature); staticText = "Each other non-Aura enchantment is a creature in addition to its other types and has base power and toughness each equal to its converted mana cost"; @@ -159,4 +158,4 @@ class StarfieldOfNyxEffect extends ContinuousEffectImpl { return layer == Layer.PTChangingEffects_7 || layer == Layer.TypeChangingEffects_4; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mastersedition/GoblinChirurgeon.java b/Mage.Sets/src/mage/sets/mastersedition/GoblinChirurgeon.java index 1c1838ad7e..881780480b 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/GoblinChirurgeon.java +++ b/Mage.Sets/src/mage/sets/mastersedition/GoblinChirurgeon.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author LevelX2 */ -public class GoblinChirurgeon extends mage.sets.fallenempires.GoblinChirurgeon { +public class GoblinChirurgeon extends mage.sets.fallenempires.GoblinChirurgeon1 { public GoblinChirurgeon(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/mastersedition/HighTide.java b/Mage.Sets/src/mage/sets/mastersedition/HighTide.java index 989fab54f3..765f2b9c36 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/HighTide.java +++ b/Mage.Sets/src/mage/sets/mastersedition/HighTide.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author LevelX2 */ -public class HighTide extends mage.sets.fallenempires.HighTide { +public class HighTide extends mage.sets.fallenempires.HighTide1 { public HighTide(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/mastersedition/ThornThallid.java b/Mage.Sets/src/mage/sets/mastersedition/ThornThallid.java index ed73a75879..72f75be201 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/ThornThallid.java +++ b/Mage.Sets/src/mage/sets/mastersedition/ThornThallid.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author LevelX2 */ -public class ThornThallid extends mage.sets.fallenempires.ThornThallid { +public class ThornThallid extends mage.sets.fallenempires.ThornThallid1 { public ThornThallid(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/masterseditionii/BrassclawOrcs.java b/Mage.Sets/src/mage/sets/masterseditionii/BrassclawOrcs.java index aecc4293e7..cd0c62b2c3 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/BrassclawOrcs.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/BrassclawOrcs.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author LevelX2 */ -public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs { +public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs1 { public BrassclawOrcs(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/masterseditioniv/AesthirGlider.java b/Mage.Sets/src/mage/sets/masterseditioniv/AesthirGlider.java index a077d61586..fcf7548396 100644 --- a/Mage.Sets/src/mage/sets/masterseditioniv/AesthirGlider.java +++ b/Mage.Sets/src/mage/sets/masterseditioniv/AesthirGlider.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author LevelX2 */ -public class AesthirGlider extends mage.sets.alliances.AesthirGlider { +public class AesthirGlider extends mage.sets.alliances.AesthirGlider1 { public AesthirGlider(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/mediainserts/HighTide.java b/Mage.Sets/src/mage/sets/mediainserts/HighTide.java index 5fd142047d..043fa28962 100644 --- a/Mage.Sets/src/mage/sets/mediainserts/HighTide.java +++ b/Mage.Sets/src/mage/sets/mediainserts/HighTide.java @@ -2,18 +2,18 @@ package mage.sets.mediainserts; import java.util.UUID; -public class HighTide extends mage.sets.fallenempires.HighTide { - +public class HighTide extends mage.sets.fallenempires.HighTide1 { + public HighTide(UUID ownerId) { super(ownerId); this.cardNumber = 80; this.expansionSetCode = "MBP"; } - + public HighTide(final HighTide card) { super(card); } - + @Override public HighTide copy() { return new HighTide(this); diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/HornOfPlenty.java b/Mage.Sets/src/mage/sets/mercadianmasques/HornOfPlenty.java index 6873cd06f0..7348c1d5b8 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/HornOfPlenty.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/HornOfPlenty.java @@ -44,9 +44,9 @@ import mage.constants.Rarity; import mage.constants.TargetController; import mage.filter.FilterSpell; import mage.game.Game; -import mage.game.stack.Spell; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.constants.SetTargetPointer; /** * @@ -59,7 +59,7 @@ public class HornOfPlenty extends CardImpl { this.expansionSetCode = "MMQ"; // Whenever a player casts a spell, he or she may pay {1}. If that player does, he or she draws a card at the beginning of the next end step. - this.addAbility(new SpellCastAllTriggeredAbility(new HornOfPlentyEffect(), new FilterSpell("a spell"), false, true)); + this.addAbility(new SpellCastAllTriggeredAbility(new HornOfPlentyEffect(), new FilterSpell("a spell"), false, SetTargetPointer.PLAYER)); } public HornOfPlenty(final HornOfPlenty card) { @@ -90,11 +90,7 @@ class HornOfPlentyEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); - Player caster = null; - if (spell != null) { - caster = game.getPlayer(spell.getControllerId()); - } + Player caster = game.getPlayer(targetPointer.getFirst(game, source)); if (caster != null) { if (caster.chooseUse(Outcome.DrawCard, "Pay {1} to draw a card at the beginning of the next end step?", source, game)) { Cost cost = new ManaCostsImpl("{1}"); diff --git a/Mage.Sets/src/mage/sets/odyssey/UnifyingTheory.java b/Mage.Sets/src/mage/sets/odyssey/UnifyingTheory.java index 0fba130c3e..be4bf8d5bf 100644 --- a/Mage.Sets/src/mage/sets/odyssey/UnifyingTheory.java +++ b/Mage.Sets/src/mage/sets/odyssey/UnifyingTheory.java @@ -32,27 +32,26 @@ import mage.abilities.Ability; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Rarity; +import mage.constants.SetTargetPointer; import mage.filter.FilterSpell; import mage.game.Game; -import mage.game.stack.Spell; import mage.players.Player; -import mage.target.targetpointer.FixedTarget; /** * * @author cbt33, Level_X2 (Horn of Plenty) */ - + public class UnifyingTheory extends CardImpl { public UnifyingTheory(UUID ownerId) { @@ -61,7 +60,7 @@ public class UnifyingTheory extends CardImpl { // Whenever a player casts a spell, that player may pay {2}. If the player does, he or she draws a card. - this.addAbility(new SpellCastAllTriggeredAbility(new UnifyingTheoryEffect() , new FilterSpell("a spell"), false, true)); + this.addAbility(new SpellCastAllTriggeredAbility(new UnifyingTheoryEffect() , new FilterSpell("a spell"), false, SetTargetPointer.PLAYER)); } public UnifyingTheory(final UnifyingTheory card) { @@ -92,11 +91,7 @@ class UnifyingTheoryEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); - Player caster = null; - if (spell != null) { - caster = game.getPlayer(spell.getControllerId()); - } + Player caster = game.getPlayer(targetPointer.getFirst(game, source)); if (caster != null) { if (caster.chooseUse(Outcome.DrawCard, "Pay {2} to draw a card?", source, game)) { Cost cost = new ManaCostsImpl("{2}"); diff --git a/Mage.Sets/src/mage/sets/returntoravnica/EtherealArmor.java b/Mage.Sets/src/mage/sets/returntoravnica/EtherealArmor.java index da64cbd09a..b7e8d8992a 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/EtherealArmor.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/EtherealArmor.java @@ -46,7 +46,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.constants.TargetController; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -57,7 +57,7 @@ import mage.target.common.TargetCreaturePermanent; */ public class EtherealArmor extends CardImpl { - private static final FilterEnchantment filter = new FilterEnchantment("enchantment you control"); + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("enchantment you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); @@ -77,7 +77,7 @@ public class EtherealArmor extends CardImpl { this.addAbility(ability); // Enchanted creature gets +1/+1 for each enchantment you control and has first strike. - PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(new FilterEnchantment(filter)); + PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(new FilterEnchantmentPermanent(filter)); SimpleStaticAbility ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(countEnchantments, countEnchantments, Duration.WhileOnBattlefield)); ability2.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA)); this.addAbility(ability2); diff --git a/Mage.Sets/src/mage/sets/returntoravnica/GolgariCharm.java b/Mage.Sets/src/mage/sets/returntoravnica/GolgariCharm.java index 0ba958e7fd..9fd8dcbd9f 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/GolgariCharm.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/GolgariCharm.java @@ -38,7 +38,7 @@ import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.target.TargetPermanent; /** @@ -58,7 +58,7 @@ public class GolgariCharm extends CardImpl { // or destroy target enchantment; Mode mode = new Mode(); mode.getEffects().add(new DestroyTargetEffect()); - mode.getTargets().add(new TargetPermanent(new FilterEnchantment())); + mode.getTargets().add(new TargetPermanent(new FilterEnchantmentPermanent())); this.getSpellAbility().addMode(mode); // or regenerate each creature you control. @@ -75,4 +75,4 @@ public class GolgariCharm extends CardImpl { public GolgariCharm copy() { return new GolgariCharm(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/returntoravnica/SphereOfSafety.java b/Mage.Sets/src/mage/sets/returntoravnica/SphereOfSafety.java index 6c9ee272bc..fbccc1f078 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/SphereOfSafety.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/SphereOfSafety.java @@ -37,7 +37,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.events.GameEvent; @@ -73,13 +73,13 @@ public class SphereOfSafety extends CardImpl { class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl { private static final String effectText = "Creatures can't attack you or a planeswalker you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control"; - private static final FilterEnchantment filter = new FilterEnchantment("enchantment you control"); + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("enchantment you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); } private final PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(filter); - + SphereOfSafetyReplacementEffect ( ) { super(Duration.WhileOnBattlefield, Outcome.Benefit); staticText = effectText; @@ -88,7 +88,7 @@ class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl { SphereOfSafetyReplacementEffect ( SphereOfSafetyReplacementEffect effect ) { super(effect); } - + @Override public boolean checksEventType(GameEvent event, Game game) { return event.getType() == GameEvent.EventType.DECLARE_ATTACKER; @@ -124,7 +124,7 @@ class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl { } return false; } - + @Override public SphereOfSafetyReplacementEffect copy() { return new SphereOfSafetyReplacementEffect(this); diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraFinesse.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraFinesse.java index c99e4b202c..04cef420dc 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraFinesse.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraFinesse.java @@ -36,7 +36,7 @@ import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -52,7 +52,7 @@ import mage.target.common.TargetCreaturePermanent; */ public class AuraFinesse extends CardImpl { - private static final FilterEnchantment filter = new FilterEnchantment("Aura you control"); + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Aura you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); @@ -115,7 +115,7 @@ class AuraFinesseEffect extends OneShotEffect { creature.addAttachment(aura.getId(), game); } } - } + } return true; } return false; diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/UmbraMystic.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/UmbraMystic.java index beb71067f2..dee1e07817 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/UmbraMystic.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/UmbraMystic.java @@ -37,7 +37,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayerPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -50,7 +50,7 @@ import mage.game.permanent.Permanent; */ public class UmbraMystic extends CardImpl { - private static final FilterEnchantment filter = new FilterEnchantment("Auras attached to permanents you control"); + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Auras attached to permanents you control"); static { filter.add(new SubtypePredicate("Aura")); diff --git a/Mage.Sets/src/mage/sets/seventhedition/ManaBreach.java b/Mage.Sets/src/mage/sets/seventhedition/ManaBreach.java new file mode 100644 index 0000000000..d22e341467 --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/ManaBreach.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 ManaBreach extends mage.sets.exodus.ManaBreach { + + public ManaBreach(UUID ownerId) { + super(ownerId); + this.cardNumber = 85; + this.expansionSetCode = "7ED"; + } + + public ManaBreach(final ManaBreach card) { + super(card); + } + + @Override + public ManaBreach copy() { + return new ManaBreach(this); + } +} diff --git a/Mage.Sets/src/mage/sets/shadowmoor/Torture.java b/Mage.Sets/src/mage/sets/shadowmoor/Torture.java index d2e7c5a67a..ac9b7ee8ff 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/Torture.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/Torture.java @@ -34,7 +34,7 @@ import java.util.UUID; * @author jeffwadsworth */ -public class Torture extends mage.sets.homelands.Torture { +public class Torture extends mage.sets.homelands.Torture1 { public Torture(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/timespiral/DeepSeaKraken.java b/Mage.Sets/src/mage/sets/timespiral/DeepSeaKraken.java index 28b6e618f4..5df16776da 100644 --- a/Mage.Sets/src/mage/sets/timespiral/DeepSeaKraken.java +++ b/Mage.Sets/src/mage/sets/timespiral/DeepSeaKraken.java @@ -70,7 +70,7 @@ public class DeepSeaKraken extends CardImpl { this.addAbility(new SuspendAbility(9, new ManaCostsImpl("{2}{U}"), this)); // Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it. this.addAbility(new ConditionalTriggeredAbility( - new SpellCastAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), filter, false, false), SuspendedCondition.getInstance(), + new SpellCastAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), filter, false, null), SuspendedCondition.getInstance(), "Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it.", false)); } diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java b/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java index 8ce517422d..58d723b9da 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java @@ -37,7 +37,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayerPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -50,9 +50,9 @@ import mage.target.TargetPermanent; * @author Plopman */ public class DevoutHarpist extends CardImpl { - private static final FilterEnchantment filter = new FilterEnchantment("Auras attached to a creature"); - static - { + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Auras attached to a creature"); + static + { filter.add(new SubtypePredicate("Aura")); filter.add(new DevoutHarpistPredicate()); } @@ -69,7 +69,7 @@ public class DevoutHarpist extends CardImpl { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost()); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); - + } public DevoutHarpist(final DevoutHarpist card) { @@ -80,11 +80,11 @@ public class DevoutHarpist extends CardImpl { public DevoutHarpist copy() { return new DevoutHarpist(this); } - + } -class DevoutHarpistPredicate implements ObjectPlayerPredicate> { - @Override +class DevoutHarpistPredicate implements ObjectPlayerPredicate> { + @Override public boolean apply(ObjectPlayer input, Game game) { Permanent attachement = input.getObject(); if (attachement != null) { diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/HarmonicConvergence.java b/Mage.Sets/src/mage/sets/urzaslegacy/HarmonicConvergence.java index 82ea107fc1..adc6e71cd4 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/HarmonicConvergence.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/HarmonicConvergence.java @@ -40,7 +40,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardsImpl; import mage.filter.FilterCard; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -89,7 +89,7 @@ class HarmonicConvergenceEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - List enchantments = game.getBattlefield().getActivePermanents(new FilterEnchantment(), + List enchantments = game.getBattlefield().getActivePermanents(new FilterEnchantmentPermanent(), source.getControllerId(), source.getSourceId(), game); diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/PeaceAndQuiet.java b/Mage.Sets/src/mage/sets/urzaslegacy/PeaceAndQuiet.java index 7d7d6682aa..7e4bbdaa0f 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/PeaceAndQuiet.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/PeaceAndQuiet.java @@ -32,7 +32,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterEnchantment; +import mage.filter.common.FilterEnchantmentPermanent; import mage.target.TargetPermanent; /** @@ -48,7 +48,7 @@ public class PeaceAndQuiet extends CardImpl { // Destroy two target enchantments. this.getSpellAbility().addEffect(new DestroyTargetEffect()); - this.getSpellAbility().addTarget(new TargetPermanent(2, new FilterEnchantment())); + this.getSpellAbility().addTarget(new TargetPermanent(2, new FilterEnchantmentPermanent())); } public PeaceAndQuiet(final PeaceAndQuiet card) { diff --git a/Mage.Sets/src/mage/sets/vintagemasters/HighTide.java b/Mage.Sets/src/mage/sets/vintagemasters/HighTide.java index c82b0b6b91..6dc357fc4d 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/HighTide.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/HighTide.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author LevelX2 */ -public class HighTide extends mage.sets.fallenempires.HighTide { +public class HighTide extends mage.sets.fallenempires.HighTide1 { public HighTide(UUID ownerId) { super(ownerId); diff --git a/Mage/src/mage/abilities/common/SpellCastAllTriggeredAbility.java b/Mage/src/mage/abilities/common/SpellCastAllTriggeredAbility.java index bb0e485e4d..51882dc3bb 100644 --- a/Mage/src/mage/abilities/common/SpellCastAllTriggeredAbility.java +++ b/Mage/src/mage/abilities/common/SpellCastAllTriggeredAbility.java @@ -29,6 +29,7 @@ package mage.abilities.common; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; +import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.game.Game; @@ -45,39 +46,35 @@ public class SpellCastAllTriggeredAbility extends TriggeredAbilityImpl { private static final FilterSpell spellCard = new FilterSpell("a spell"); protected FilterSpell filter; protected String rule; - - /** - * If true, the source that triggered the ability will be set as target to effect. - */ - protected boolean rememberSource = false; + protected SetTargetPointer setTargetPointer; public SpellCastAllTriggeredAbility(Effect effect, boolean optional) { - this(Zone.BATTLEFIELD, effect, spellCard, optional, false); + this(Zone.BATTLEFIELD, effect, spellCard, optional, SetTargetPointer.NONE); } public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional) { - this(effect, filter, optional, false); + this(effect, filter, optional, SetTargetPointer.NONE); } public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional, String rule) { - this(effect, filter, optional, false); + this(effect, filter, optional, SetTargetPointer.NONE); this.rule = rule; } - public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional, boolean rememberSource) { - this(Zone.BATTLEFIELD, effect, filter, optional, rememberSource); + public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional, SetTargetPointer setTargetPointer) { + this(Zone.BATTLEFIELD, effect, filter, optional, setTargetPointer); } - public SpellCastAllTriggeredAbility(Zone zone, Effect effect, FilterSpell filter, boolean optional, boolean rememberSource) { + public SpellCastAllTriggeredAbility(Zone zone, Effect effect, FilterSpell filter, boolean optional, SetTargetPointer setTargetPointer) { super(zone, effect, optional); this.filter = filter; - this.rememberSource = rememberSource; + this.setTargetPointer = setTargetPointer; } public SpellCastAllTriggeredAbility(final SpellCastAllTriggeredAbility ability) { super(ability); filter = ability.filter; - this.rememberSource = ability.rememberSource; + this.setTargetPointer = ability.setTargetPointer; this.rule = ability.rule; } @@ -90,8 +87,18 @@ public class SpellCastAllTriggeredAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && filter.match(spell, getControllerId(), game)) { - if (rememberSource) { - this.getEffects().get(0).setTargetPointer(new FixedTarget(spell.getId())); + if (!setTargetPointer.equals(SetTargetPointer.NONE)) { + for (Effect effect : this.getEffects()) { + switch(setTargetPointer) { + case SPELL: + effect.setTargetPointer(new FixedTarget(spell.getId())); + break; + case PLAYER: + effect.setTargetPointer(new FixedTarget(spell.getControllerId())); + break; + } + + } } return true; }