Merge pull request #1067 from LoneFox78/master

Fixes
This commit is contained in:
LevelX2 2015-06-30 22:09:19 +02:00
commit 6e6049f116
76 changed files with 1551 additions and 251 deletions

View file

@ -155,7 +155,7 @@
<Component class="javax.swing.JCheckBox" name="showToolTipsInAnyZone"> <Component class="javax.swing.JCheckBox" name="showToolTipsInAnyZone">
<Properties> <Properties>
<Property name="selected" type="boolean" value="true"/> <Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="Show card tooltips while hoovering with the mouse pointer over a card"/> <Property name="text" type="java.lang.String" value="Show card tooltips while hovering with the mouse pointer over a card"/>
<Property name="toolTipText" type="java.lang.String" value=""/> <Property name="toolTipText" type="java.lang.String" value=""/>
<Property name="actionCommand" type="java.lang.String" value=""/> <Property name="actionCommand" type="java.lang.String" value=""/>
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@ -253,7 +253,7 @@
<Properties> <Properties>
<Property name="selected" type="boolean" value="true"/> <Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="Show player names on avatar permanently"/> <Property name="text" type="java.lang.String" value="Show player names on avatar permanently"/>
<Property name="toolTipText" type="java.lang.String" value="Instead showing the names only if you hoover over the avatar with the mouse, the name is shown all the time."/> <Property name="toolTipText" type="java.lang.String" value="Instead showing the names only if you hover over the avatar with the mouse, the name is shown all the time."/>
<Property name="horizontalAlignment" type="int" value="2"/> <Property name="horizontalAlignment" type="int" value="2"/>
</Properties> </Properties>
<Events> <Events>

View file

@ -474,7 +474,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
}); });
showToolTipsInAnyZone.setSelected(true); 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.setToolTipText("");
showToolTipsInAnyZone.setActionCommand(""); showToolTipsInAnyZone.setActionCommand("");
showToolTipsInAnyZone.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); 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.setSelected(true);
showPlayerNamesPermanently.setText("Show player names on avatar permanently"); 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.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
showPlayerNamesPermanently.addActionListener(new java.awt.event.ActionListener() { showPlayerNamesPermanently.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {

View file

@ -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 * @param showAlternative defines if the original image (if it's a copied card) or the opposite side of a transformable card will be shown
*/ */

View file

@ -242,7 +242,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
showCopySourceButton = new JButton(""); showCopySourceButton = new JButton("");
showCopySourceButton.setLocation(2, 2); showCopySourceButton.setLocation(2, 2);
showCopySourceButton.setSize(25, 25); 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()); copyIconPanel.setVisible(((PermanentView) this.gameCard).isCopy());
showCopySourceButton.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getCopyInformIconImage())); showCopySourceButton.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getCopyInformIconImage()));

View file

@ -39,9 +39,9 @@ import mage.constants.Rarity;
* *
* @author Sir-Speshkitty * @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}"); super(ownerId, 156, "Aesthir Glider", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
this.expansionSetCode = "ALL"; this.expansionSetCode = "ALL";
this.subtype.add("Bird"); this.subtype.add("Bird");
@ -54,12 +54,12 @@ public class AesthirGlider extends CardImpl {
this.addAbility(new CantBlockAbility()); this.addAbility(new CantBlockAbility());
} }
public AesthirGlider(final AesthirGlider card) { public AesthirGlider1(final AesthirGlider1 card) {
super(card); super(card);
} }
@Override @Override
public AesthirGlider copy() { public AesthirGlider1 copy() {
return new AesthirGlider(this); return new AesthirGlider1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -53,9 +53,9 @@ import mage.target.common.TargetControlledPermanent;
* *
* @author Quercitron * @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}"); super(ownerId, 51, "Soldevi Sage", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.expansionSetCode = "ALL"; this.expansionSetCode = "ALL";
this.subtype.add("Human"); this.subtype.add("Human");
@ -70,13 +70,13 @@ public class SoldeviSage extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
} }
public SoldeviSage(final SoldeviSage card) { public SoldeviSage1(final SoldeviSage1 card) {
super(card); super(card);
} }
@Override @Override
public SoldeviSage copy() { public SoldeviSage1 copy() {
return new SoldeviSage(this); return new SoldeviSage1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -32,7 +32,7 @@ import mage.constants.Rarity;
import mage.abilities.Mode; import mage.abilities.Mode;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.common.FilterLandPermanent; import mage.filter.common.FilterLandPermanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
@ -59,7 +59,7 @@ public class RainOfThorns extends CardImpl {
Mode mode1 = new Mode(); Mode mode1 = new Mode();
mode1.getEffects().add(new DestroyTargetEffect()); mode1.getEffects().add(new DestroyTargetEffect());
mode1.getTargets().add(new TargetPermanent(new FilterEnchantment())); mode1.getTargets().add(new TargetPermanent(new FilterEnchantmentPermanent()));
this.getSpellAbility().addMode(mode1); this.getSpellAbility().addMode(mode1);
Mode mode2 = new Mode(); Mode mode2 = new Mode();

View file

@ -42,7 +42,7 @@ import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.FlipSourceEffect; import mage.abilities.effects.common.FlipSourceEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.Predicate; import mage.filter.predicate.Predicate;
import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.game.Game; import mage.game.Game;
@ -88,7 +88,7 @@ public class KitsuneMystic extends CardImpl {
class AutumnTailKitsuneSage extends Token { 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 { static {
filter.add(new AttachmentAttachedToCardTypePredicate(CardType.CREATURE)); filter.add(new AttachmentAttachedToCardTypePredicate(CardType.CREATURE));

View file

@ -34,7 +34,7 @@ import mage.constants.Rarity;
* *
* @author Quercitron * @author Quercitron
*/ */
public class SoldeviSage extends mage.sets.alliances.SoldeviSage { public class SoldeviSage extends mage.sets.alliances.SoldeviSage1 {
public SoldeviSage(UUID ownerId) { public SoldeviSage(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -37,6 +37,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.CardTypePredicate;
@ -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. // 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) { public Dovescape(final Dovescape card) {

View file

@ -32,7 +32,7 @@ import mage.constants.CardType;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.SplitCard; import mage.cards.SplitCard;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.target.Target; import mage.target.Target;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
@ -56,7 +56,7 @@ public class WearTear extends SplitCard {
// Tear // Tear
// Destroy target enchantment. // Destroy target enchantment.
getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect()); getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect());
target = new TargetPermanent(new FilterEnchantment()); target = new TargetPermanent(new FilterEnchantmentPermanent());
getRightHalfCard().getSpellAbility().addTarget(target); getRightHalfCard().getSpellAbility().addTarget(target);
} }

View file

@ -33,7 +33,7 @@ import java.util.UUID;
* *
* @author anonymous * @author anonymous
*/ */
public class OrcishSpy extends mage.sets.fallenempires.OrcishSpy { public class OrcishSpy extends mage.sets.fallenempires.OrcishSpy1 {
public OrcishSpy(UUID ownerId) { public OrcishSpy(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -41,8 +41,8 @@ import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.game.permanent.token.Token; import mage.game.permanent.token.Token;
import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent;
@ -55,9 +55,11 @@ import mage.target.common.TargetCreaturePermanent;
public class AmbushCommander extends CardImpl { public class AmbushCommander extends CardImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an Elf"); private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an Elf");
private static final FilterControlledPermanent filter2 = new FilterControlledPermanent("Forests you control");
static { static {
filter.add(new SubtypePredicate("Elf")); filter.add(new SubtypePredicate("Elf"));
filter2.add(new SubtypePredicate("Forest"));
} }
public AmbushCommander(UUID ownerId) { public AmbushCommander(UUID ownerId) {
@ -69,9 +71,11 @@ public class AmbushCommander extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Forests you control are 1/1 green Elf creatures that are still lands. // 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. // {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.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1, filter, true)));
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability); this.addAbility(ability);

View file

@ -40,11 +40,11 @@ import mage.cards.CardImpl;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.ColorPredicate;
import mage.game.Game; import mage.game.Game;
import mage.game.stack.Spell;
import mage.players.Player; import mage.players.Player;
/** /**
@ -71,7 +71,7 @@ public class SootImp extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Whenever a player casts a nonblack spell, that player loses 1 life. // 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));
} }
@ -103,11 +103,7 @@ class SootImpEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); Player caster = game.getPlayer(targetPointer.getFirst(game, source));
Player caster = null;
if (spell != null) {
caster = game.getPlayer(spell.getControllerId());
}
if (caster != null) { if (caster != null) {
caster.loseLife(1, game); caster.loseLife(1, game);
return true; return true;

View file

@ -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);
}
}

View file

@ -43,14 +43,14 @@ import mage.filter.predicate.mageobject.PowerPredicate;
* *
* @author dustinconrad * @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"); private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater");
static { static {
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); 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}"); super(ownerId, 100, "Brassclaw Orcs", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{R}");
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
this.subtype.add("Orc"); 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); super(card);
} }
@Override @Override
public BrassclawOrcs copy() { public BrassclawOrcs1 copy() {
return new BrassclawOrcs(this); return new BrassclawOrcs1(this);
} }
} }

View file

@ -25,34 +25,28 @@
* authors and should not be interpreted as representing official policies, either expressed * authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com. * or implied, of BetaSteward_at_googlemail.com.
*/ */
package mage.sets.fallenempires;
package mage.filter.common; import java.util.UUID;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
/** /**
* *
* @author nantuko * @author LoneFox
*/ */
public class FilterEnchantment extends FilterPermanent { public class BrassclawOrcs2 extends mage.sets.fallenempires.BrassclawOrcs1 {
public FilterEnchantment() { public BrassclawOrcs2(UUID ownerId) {
this("enchantment"); super(ownerId);
this.cardNumber = 101;
} }
public FilterEnchantment(String name) { public BrassclawOrcs2(final BrassclawOrcs2 card) {
super(name); super(card);
this.add(new CardTypePredicate(CardType.ENCHANTMENT));
}
public FilterEnchantment(final FilterEnchantment filter) {
super(filter);
} }
@Override @Override
public FilterEnchantment copy() { public BrassclawOrcs2 copy() {
return new FilterEnchantment(this); return new BrassclawOrcs2(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -45,9 +45,9 @@ import mage.target.common.TargetCreaturePermanent;
* *
* @author LevelX2 * @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}"); super(ownerId, 110, "Goblin Chirurgeon", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}");
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
this.subtype.add("Goblin"); this.subtype.add("Goblin");
@ -63,12 +63,12 @@ public class GoblinChirurgeon extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
} }
public GoblinChirurgeon(final GoblinChirurgeon card) { public GoblinChirurgeon1(final GoblinChirurgeon1 card) {
super(card); super(card);
} }
@Override @Override
public GoblinChirurgeon copy() { public GoblinChirurgeon1 copy() {
return new GoblinChirurgeon(this); return new GoblinChirurgeon1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -50,9 +50,9 @@ import mage.target.targetpointer.FixedTarget;
* *
* @author Plopman * @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}"); super(ownerId, 35, "High Tide", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{U}");
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
@ -61,13 +61,13 @@ public class HighTide extends CardImpl {
} }
public HighTide(final HighTide card) { public HighTide1(final HighTide1 card) {
super(card); super(card);
} }
@Override @Override
public HighTide copy() { public HighTide1 copy() {
return new HighTide(this); return new HighTide1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -42,9 +42,9 @@ import mage.constants.Zone;
* *
* @author anonymous * @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}"); super(ownerId, 124, "Orcish Spy", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}");
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
this.subtype.add("Orc"); this.subtype.add("Orc");
@ -57,12 +57,12 @@ public class OrcishSpy extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
} }
public OrcishSpy(final OrcishSpy card) { public OrcishSpy1(final OrcishSpy1 card) {
super(card); super(card);
} }
@Override @Override
public OrcishSpy copy() { public OrcishSpy1 copy() {
return new OrcishSpy(this); return new OrcishSpy1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -34,21 +34,21 @@ import mage.constants.Rarity;
* *
* @author North * @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); super(ownerId);
this.cardNumber = 87; this.cardNumber = 87;
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
this.rarity = Rarity.COMMON; this.rarity = Rarity.COMMON;
} }
public Thallid(final Thallid card) { public Thallid1(final Thallid1 card) {
super(card); super(card);
} }
@Override @Override
public Thallid copy() { public Thallid1 copy() {
return new Thallid(this); return new Thallid1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -47,9 +47,9 @@ import mage.target.common.TargetCreatureOrPlayer;
* *
* @author fireshoes * @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}"); super(ownerId, 96, "Thorn Thallid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}{G}");
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
this.subtype.add("Fungus"); this.subtype.add("Fungus");
@ -66,12 +66,12 @@ public class ThornThallid extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
} }
public ThornThallid(final ThornThallid card) { public ThornThallid1(final ThornThallid1 card) {
super(card); super(card);
} }
@Override @Override
public ThornThallid copy() { public ThornThallid1 copy() {
return new ThornThallid(this); return new ThornThallid1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -33,20 +33,20 @@ import java.util.UUID;
* *
* @author North * @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); super(ownerId);
this.cardNumber = 62; this.cardNumber = 62;
this.expansionSetCode = "FEM"; this.expansionSetCode = "FEM";
} }
public VodalianSoldiers(final VodalianSoldiers card) { public VodalianSoldiers1(final VodalianSoldiers1 card) {
super(card); super(card);
} }
@Override @Override
public VodalianSoldiers copy() { public VodalianSoldiers1 copy() {
return new VodalianSoldiers(this); return new VodalianSoldiers1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -33,7 +33,7 @@ import java.util.UUID;
* *
* @author dustinconrad * @author dustinconrad
*/ */
public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs { public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs1 {
public BrassclawOrcs(UUID ownerId) { public BrassclawOrcs(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -34,7 +34,7 @@ import java.util.UUID;
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public class Torture extends mage.sets.homelands.Torture { public class Torture extends mage.sets.homelands.Torture1 {
public Torture(UUID ownerId) { public Torture(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -44,10 +44,10 @@ import mage.constants.Zone;
* *
* @author Sir-Speshkitty * @author Sir-Speshkitty
*/ */
public class AbbeyMatron extends CardImpl { public class AbbeyMatron1 extends CardImpl {
public AbbeyMatron(UUID ownerId) { public AbbeyMatron1(UUID ownerId) {
super(ownerId, 103, "Abbey Matron", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); super(ownerId, 102, "Abbey Matron", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
this.expansionSetCode = "HML"; this.expansionSetCode = "HML";
this.subtype.add("Human"); this.subtype.add("Human");
this.subtype.add("Cleric"); this.subtype.add("Cleric");
@ -60,12 +60,12 @@ public class AbbeyMatron extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
} }
public AbbeyMatron(final AbbeyMatron card) { public AbbeyMatron1(final AbbeyMatron1 card) {
super(card); super(card);
} }
@Override @Override
public AbbeyMatron copy() { public AbbeyMatron1 copy() {
return new AbbeyMatron(this); return new AbbeyMatron1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -42,7 +42,7 @@ import mage.filter.predicate.mageobject.ColorPredicate;
* *
* @author fireshoes * @author fireshoes
*/ */
public class CemeteryGate extends CardImpl { public class CemeteryGate1 extends CardImpl {
private static final FilterCard filter = new FilterCard("Black"); private static final FilterCard filter = new FilterCard("Black");
@ -50,8 +50,8 @@ public class CemeteryGate extends CardImpl {
filter.add(new ColorPredicate(ObjectColor.BLACK)); filter.add(new ColorPredicate(ObjectColor.BLACK));
} }
public CemeteryGate(UUID ownerId) { public CemeteryGate1(UUID ownerId) {
super(ownerId, 5, "Cemetery Gate", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); super(ownerId, 4, "Cemetery Gate", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
this.expansionSetCode = "HML"; this.expansionSetCode = "HML";
this.subtype.add("Wall"); this.subtype.add("Wall");
this.power = new MageInt(0); this.power = new MageInt(0);
@ -64,12 +64,12 @@ public class CemeteryGate extends CardImpl {
this.addAbility(new ProtectionAbility(filter)); this.addAbility(new ProtectionAbility(filter));
} }
public CemeteryGate(final CemeteryGate card) { public CemeteryGate1(final CemeteryGate1 card) {
super(card); super(card);
} }
@Override @Override
public CemeteryGate copy() { public CemeteryGate1 copy() {
return new CemeteryGate(this); return new CemeteryGate1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -48,11 +48,11 @@ import mage.target.common.TargetCreaturePermanent;
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public class Torture extends CardImpl { public class Torture1 extends CardImpl {
private static final String rule = "Testing rules"; 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}"); super(ownerId, 23, "Torture", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{B}");
this.expansionSetCode = "HML"; this.expansionSetCode = "HML";
this.subtype.add("Aura"); this.subtype.add("Aura");
@ -73,12 +73,12 @@ public class Torture extends CardImpl {
new ManaCostsImpl("{1}{B}"))); new ManaCostsImpl("{1}{B}")));
} }
public Torture(final Torture card) { public Torture1(final Torture1 card) {
super(card); super(card);
} }
@Override @Override
public Torture copy() { public Torture1 copy() {
return new Torture(this); return new Torture1(this);
} }
} }

View file

@ -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);
}
}

View file

@ -33,7 +33,7 @@ import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
@ -78,7 +78,7 @@ class ParaseleneEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
int count = 0; 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)) { if (permanent.destroy(source.getSourceId(), game, false)) {
count++; count++;
} }

View file

@ -36,6 +36,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.CardTypePredicate;
@ -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. // 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) { public InTheEyeOfChaos(final InTheEyeOfChaos card) {

View file

@ -34,6 +34,7 @@ import mage.abilities.effects.common.CounterUnlessPaysEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
/** /**
@ -48,7 +49,7 @@ public class NetherVoid extends CardImpl {
this.supertype.add("World"); this.supertype.add("World");
// Whenever a player casts a spell, counter it unless that player pays {3}. // 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) { public NetherVoid(final NetherVoid card) {

View file

@ -40,7 +40,7 @@ import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
/** /**
@ -49,7 +49,7 @@ import mage.filter.predicate.permanent.ControllerPredicate;
*/ */
public class HelmOfTheGods extends CardImpl { 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 { static {
filter.add(new ControllerPredicate(TargetController.YOU)); filter.add(new ControllerPredicate(TargetController.YOU));
@ -61,7 +61,7 @@ public class HelmOfTheGods extends CardImpl {
this.subtype.add("Equipment"); this.subtype.add("Equipment");
// Equipped creature gets +1/+1 for each enchantment you control. // 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 effect = new BoostEquippedEffect(countEnchantments, countEnchantments);
effect.setText("Equipped creature gets +1/+1 for each enchantment you control"); effect.setText("Equipped creature gets +1/+1 for each enchantment you control");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

View file

@ -45,7 +45,6 @@ import mage.constants.SubLayer;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterCard; import mage.filter.FilterCard;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.CardTypePredicate;
@ -66,7 +65,7 @@ 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 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 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 { static {
filterEnchantmentYouControl.add(new ControllerPredicate(TargetController.YOU)); filterEnchantmentYouControl.add(new ControllerPredicate(TargetController.YOU));

View file

@ -33,7 +33,7 @@ import java.util.UUID;
* *
* @author LevelX2 * @author LevelX2
*/ */
public class GoblinChirurgeon extends mage.sets.fallenempires.GoblinChirurgeon { public class GoblinChirurgeon extends mage.sets.fallenempires.GoblinChirurgeon1 {
public GoblinChirurgeon(UUID ownerId) { public GoblinChirurgeon(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -34,7 +34,7 @@ import mage.constants.Rarity;
* *
* @author LevelX2 * @author LevelX2
*/ */
public class HighTide extends mage.sets.fallenempires.HighTide { public class HighTide extends mage.sets.fallenempires.HighTide1 {
public HighTide(UUID ownerId) { public HighTide(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -33,7 +33,7 @@ import java.util.UUID;
* *
* @author LevelX2 * @author LevelX2
*/ */
public class ThornThallid extends mage.sets.fallenempires.ThornThallid { public class ThornThallid extends mage.sets.fallenempires.ThornThallid1 {
public ThornThallid(UUID ownerId) { public ThornThallid(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -33,7 +33,7 @@ import java.util.UUID;
* *
* @author LevelX2 * @author LevelX2
*/ */
public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs { public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs1 {
public BrassclawOrcs(UUID ownerId) { public BrassclawOrcs(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -33,7 +33,7 @@ import java.util.UUID;
* *
* @author LevelX2 * @author LevelX2
*/ */
public class AesthirGlider extends mage.sets.alliances.AesthirGlider { public class AesthirGlider extends mage.sets.alliances.AesthirGlider1 {
public AesthirGlider(UUID ownerId) { public AesthirGlider(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -2,7 +2,7 @@ package mage.sets.mediainserts;
import java.util.UUID; import java.util.UUID;
public class HighTide extends mage.sets.fallenempires.HighTide { public class HighTide extends mage.sets.fallenempires.HighTide1 {
public HighTide(UUID ownerId) { public HighTide(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -44,9 +44,9 @@ import mage.constants.Rarity;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.game.Game; import mage.game.Game;
import mage.game.stack.Spell;
import mage.players.Player; import mage.players.Player;
import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.FixedTarget;
import mage.constants.SetTargetPointer;
/** /**
* *
@ -59,7 +59,7 @@ public class HornOfPlenty extends CardImpl {
this.expansionSetCode = "MMQ"; 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. // 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) { public HornOfPlenty(final HornOfPlenty card) {
@ -90,11 +90,7 @@ class HornOfPlentyEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); Player caster = game.getPlayer(targetPointer.getFirst(game, source));
Player caster = null;
if (spell != null) {
caster = game.getPlayer(spell.getControllerId());
}
if (caster != null) { if (caster != null) {
if (caster.chooseUse(Outcome.DrawCard, "Pay {1} to draw a card at the beginning of the next end step?", source, game)) { 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}"); Cost cost = new ManaCostsImpl("{1}");

View file

@ -32,21 +32,20 @@ import mage.abilities.Ability;
import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.common.SpellCastAllTriggeredAbility;
import mage.abilities.costs.Cost; import mage.abilities.costs.Cost;
import mage.abilities.costs.mana.GenericManaCost; 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.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.game.Game; import mage.game.Game;
import mage.game.stack.Spell;
import mage.players.Player; import mage.players.Player;
import mage.target.targetpointer.FixedTarget;
/** /**
* *
@ -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. // 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) { public UnifyingTheory(final UnifyingTheory card) {
@ -92,11 +91,7 @@ class UnifyingTheoryEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); Player caster = game.getPlayer(targetPointer.getFirst(game, source));
Player caster = null;
if (spell != null) {
caster = game.getPlayer(spell.getControllerId());
}
if (caster != null) { if (caster != null) {
if (caster.chooseUse(Outcome.DrawCard, "Pay {2} to draw a card?", source, game)) { if (caster.chooseUse(Outcome.DrawCard, "Pay {2} to draw a card?", source, game)) {
Cost cost = new ManaCostsImpl("{2}"); Cost cost = new ManaCostsImpl("{2}");

View file

@ -46,7 +46,7 @@ import mage.abilities.keyword.EnchantAbility;
import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
@ -57,7 +57,7 @@ import mage.target.common.TargetCreaturePermanent;
*/ */
public class EtherealArmor extends CardImpl { 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 { static {
filter.add(new ControllerPredicate(TargetController.YOU)); filter.add(new ControllerPredicate(TargetController.YOU));
@ -77,7 +77,7 @@ public class EtherealArmor extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// Enchanted creature gets +1/+1 for each enchantment you control and has first strike. // 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)); SimpleStaticAbility ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(countEnchantments, countEnchantments, Duration.WhileOnBattlefield));
ability2.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA)); ability2.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA));
this.addAbility(ability2); this.addAbility(ability2);

View file

@ -38,7 +38,7 @@ import mage.abilities.effects.common.continuous.BoostAllEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
/** /**
@ -58,7 +58,7 @@ public class GolgariCharm extends CardImpl {
// or destroy target enchantment; // or destroy target enchantment;
Mode mode = new Mode(); Mode mode = new Mode();
mode.getEffects().add(new DestroyTargetEffect()); mode.getEffects().add(new DestroyTargetEffect());
mode.getTargets().add(new TargetPermanent(new FilterEnchantment())); mode.getTargets().add(new TargetPermanent(new FilterEnchantmentPermanent()));
this.getSpellAbility().addMode(mode); this.getSpellAbility().addMode(mode);
// or regenerate each creature you control. // or regenerate each creature you control.

View file

@ -37,7 +37,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.ReplacementEffectImpl;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
@ -73,7 +73,7 @@ public class SphereOfSafety extends CardImpl {
class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl { 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 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 { static {
filter.add(new ControllerPredicate(TargetController.YOU)); filter.add(new ControllerPredicate(TargetController.YOU));
} }

View file

@ -36,7 +36,7 @@ import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.Game; import mage.game.Game;
@ -52,7 +52,7 @@ import mage.target.common.TargetCreaturePermanent;
*/ */
public class AuraFinesse extends CardImpl { 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 { static {
filter.add(new ControllerPredicate(TargetController.YOU)); filter.add(new ControllerPredicate(TargetController.YOU));

View file

@ -37,7 +37,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.keyword.TotemArmorAbility; import mage.abilities.keyword.TotemArmorAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayer;
import mage.filter.predicate.ObjectPlayerPredicate; import mage.filter.predicate.ObjectPlayerPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate;
@ -50,7 +50,7 @@ import mage.game.permanent.Permanent;
*/ */
public class UmbraMystic extends CardImpl { 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 { static {
filter.add(new SubtypePredicate("Aura")); filter.add(new SubtypePredicate("Aura"));

View file

@ -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);
}
}

View file

@ -34,7 +34,7 @@ import java.util.UUID;
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public class Torture extends mage.sets.homelands.Torture { public class Torture extends mage.sets.homelands.Torture1 {
public Torture(UUID ownerId) { public Torture(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -70,7 +70,7 @@ public class DeepSeaKraken extends CardImpl {
this.addAbility(new SuspendAbility(9, new ManaCostsImpl("{2}{U}"), this)); 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. // Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it.
this.addAbility(new ConditionalTriggeredAbility( 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)); "Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it.", false));
} }

View file

@ -37,7 +37,7 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayer;
import mage.filter.predicate.ObjectPlayerPredicate; import mage.filter.predicate.ObjectPlayerPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate;
@ -50,7 +50,7 @@ import mage.target.TargetPermanent;
* @author Plopman * @author Plopman
*/ */
public class DevoutHarpist extends CardImpl { public class DevoutHarpist extends CardImpl {
private static final FilterEnchantment filter = new FilterEnchantment("Auras attached to a creature"); private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Auras attached to a creature");
static static
{ {
filter.add(new SubtypePredicate("Aura")); filter.add(new SubtypePredicate("Aura"));

View file

@ -40,7 +40,7 @@ import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardsImpl; import mage.cards.CardsImpl;
import mage.filter.FilterCard; import mage.filter.FilterCard;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
@ -89,7 +89,7 @@ class HarmonicConvergenceEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
List<Permanent> enchantments = game.getBattlefield().getActivePermanents(new FilterEnchantment(), List<Permanent> enchantments = game.getBattlefield().getActivePermanents(new FilterEnchantmentPermanent(),
source.getControllerId(), source.getControllerId(),
source.getSourceId(), source.getSourceId(),
game); game);

View file

@ -32,7 +32,7 @@ import mage.constants.CardType;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment; import mage.filter.common.FilterEnchantmentPermanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
/** /**
@ -48,7 +48,7 @@ public class PeaceAndQuiet extends CardImpl {
// Destroy two target enchantments. // Destroy two target enchantments.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); 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) { public PeaceAndQuiet(final PeaceAndQuiet card) {

View file

@ -34,7 +34,7 @@ import mage.constants.Rarity;
* *
* @author LevelX2 * @author LevelX2
*/ */
public class HighTide extends mage.sets.fallenempires.HighTide { public class HighTide extends mage.sets.fallenempires.HighTide1 {
public HighTide(UUID ownerId) { public HighTide(UUID ownerId) {
super(ownerId); super(ownerId);

View file

@ -29,6 +29,7 @@ package mage.abilities.common;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.constants.SetTargetPointer;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.game.Game; import mage.game.Game;
@ -45,39 +46,35 @@ public class SpellCastAllTriggeredAbility extends TriggeredAbilityImpl {
private static final FilterSpell spellCard = new FilterSpell("a spell"); private static final FilterSpell spellCard = new FilterSpell("a spell");
protected FilterSpell filter; protected FilterSpell filter;
protected String rule; protected String rule;
protected SetTargetPointer setTargetPointer;
/**
* If true, the source that triggered the ability will be set as target to effect.
*/
protected boolean rememberSource = false;
public SpellCastAllTriggeredAbility(Effect effect, boolean optional) { 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) { 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) { public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional, String rule) {
this(effect, filter, optional, false); this(effect, filter, optional, SetTargetPointer.NONE);
this.rule = rule; this.rule = rule;
} }
public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional, boolean rememberSource) { public SpellCastAllTriggeredAbility(Effect effect, FilterSpell filter, boolean optional, SetTargetPointer setTargetPointer) {
this(Zone.BATTLEFIELD, effect, filter, optional, rememberSource); 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); super(zone, effect, optional);
this.filter = filter; this.filter = filter;
this.rememberSource = rememberSource; this.setTargetPointer = setTargetPointer;
} }
public SpellCastAllTriggeredAbility(final SpellCastAllTriggeredAbility ability) { public SpellCastAllTriggeredAbility(final SpellCastAllTriggeredAbility ability) {
super(ability); super(ability);
filter = ability.filter; filter = ability.filter;
this.rememberSource = ability.rememberSource; this.setTargetPointer = ability.setTargetPointer;
this.rule = ability.rule; this.rule = ability.rule;
} }
@ -90,8 +87,18 @@ public class SpellCastAllTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) { public boolean checkTrigger(GameEvent event, Game game) {
Spell spell = game.getStack().getSpell(event.getTargetId()); Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && filter.match(spell, getControllerId(), game)) { if (spell != null && filter.match(spell, getControllerId(), game)) {
if (rememberSource) { if (!setTargetPointer.equals(SetTargetPointer.NONE)) {
this.getEffects().get(0).setTargetPointer(new FixedTarget(spell.getId())); 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; return true;
} }