1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-04-11 17:00:08 -09:00

Merge pull request 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
Mage.Client/src/main/java
Mage.Sets/src/mage/sets
alliances
avacynrestored
championsofkamigawa
classicsixthedition
dissension
dragonsmaze
eighthedition
elvesvsgoblins
eventide
exodus
fallenempires
fifthedition
homelands
innistrad
legends
magicorigins
mastersedition
masterseditionii
masterseditioniv
mediainserts
mercadianmasques
odyssey
returntoravnica
riseoftheeldrazi
seventhedition
shadowmoor
timespiral
urzaslegacy
vintagemasters
Mage/src/mage/abilities/common

View file

@ -155,7 +155,7 @@
<Component class="javax.swing.JCheckBox" name="showToolTipsInAnyZone">
<Properties>
<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="actionCommand" type="java.lang.String" value=""/>
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@ -253,7 +253,7 @@
<Properties>
<Property name="selected" type="boolean" value="true"/>
<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"/>
</Properties>
<Events>

View file

@ -474,7 +474,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
});
showToolTipsInAnyZone.setSelected(true);
showToolTipsInAnyZone.setText("Show card tooltips while hoovering with the mouse pointer over a card");
showToolTipsInAnyZone.setText("Show card tooltips while hovering with the mouse pointer over a card");
showToolTipsInAnyZone.setToolTipText("");
showToolTipsInAnyZone.setActionCommand("");
showToolTipsInAnyZone.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
@ -533,7 +533,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
showPlayerNamesPermanently.setSelected(true);
showPlayerNamesPermanently.setText("Show player names on avatar permanently");
showPlayerNamesPermanently.setToolTipText("Instead showing the names only if you hoover over the avatar with the mouse, the name is shown all the time.");
showPlayerNamesPermanently.setToolTipText("Instead showing the names only if you hover over the avatar with the mouse, the name is shown all the time.");
showPlayerNamesPermanently.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
showPlayerNamesPermanently.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {

View file

@ -388,7 +388,7 @@ public class MageActionCallback implements ActionCallback {
/**
* Hides the text popup window
*
*
*/
@Override
public void hidePopup() {
@ -445,7 +445,7 @@ public class MageActionCallback implements ActionCallback {
}
}
return;
}
}
if (notches < 0) {
// move up - show normal image
enlargeCard(EnlargeMode.NORMAL);
@ -456,7 +456,7 @@ public class MageActionCallback implements ActionCallback {
}
/**
* Show the big card image on mouse position while hoovering over a card
* Show the big card image on mouse position while hovering over a card
*
* @param showAlternative defines if the original image (if it's a copied card) or the opposite side of a transformable card will be shown
*/
@ -489,7 +489,7 @@ public class MageActionCallback implements ActionCallback {
cardPreviewContainer.setVisible(false);
cardPreviewContainer = MageFrame.getUI().getComponent(MageComponents.CARD_PREVIEW_CONTAINER_ROTATED);
cardPreviewContainer.setVisible(false);
} catch (InterruptedException e) {
e.printStackTrace();
}
@ -538,7 +538,7 @@ public class MageActionCallback implements ActionCallback {
location.translate(-parentPoint.x, -parentPoint.y);
popupContainer.setLocation(location);
popupContainer.setVisible(true);
MageCard mageCard = (MageCard) transferData.component;
Image image = null;
switch (enlargeMode) {

View file

@ -99,12 +99,12 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
public JPanel buttonPanel;
private JButton dayNightButton;
public JPanel copyIconPanel;
public JPanel copyIconPanel;
private JButton showCopySourceButton;
public JPanel iconPanel;
private JButton typeButton;
public JPanel counterPanel;
private JLabel loyaltyCounterLabel;
private JLabel plusCounterLabel;
@ -125,7 +125,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
private boolean isSelected;
private boolean isPlayable;
private boolean isChoosable;
private boolean canAttack;
private boolean canAttack;
private boolean showCastingCost;
private boolean hasImage = false;
private float alpha = 1.0f;
@ -151,7 +151,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
private JPanel cardArea;
private int yTextOffset = 10;
public CardPanel(CardView newGameCard, UUID gameId, final boolean loadImage, ActionCallback callback, final boolean foil, Dimension dimension) {
this.gameCard = newGameCard;
this.callback = callback;
@ -224,12 +224,12 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
if (AbilityType.TRIGGERED.equals(newGameCard.getAbilityType())) {
setTypeIcon(ImageManagerImpl.getInstance().getTriggeredAbilityImage(),"Triggered Ability");
} else if (AbilityType.ACTIVATED.equals(newGameCard.getAbilityType())) {
setTypeIcon(ImageManagerImpl.getInstance().getActivatedAbilityImage(),"Activated Ability");
}
setTypeIcon(ImageManagerImpl.getInstance().getActivatedAbilityImage(),"Activated Ability");
}
}
if (this.gameCard.isToken()) {
setTypeIcon(ImageManagerImpl.getInstance().getTokenIconImage(),"Token Permanent");
setTypeIcon(ImageManagerImpl.getInstance().getTokenIconImage(),"Token Permanent");
}
// icon to inform about permanent is copying something
@ -242,7 +242,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
showCopySourceButton = new JButton("");
showCopySourceButton.setLocation(2, 2);
showCopySourceButton.setSize(25, 25);
showCopySourceButton.setToolTipText("This permanent is copying a target. To see original image, push this button or turn mouse wheel down while hoovering with the mouse pointer over the permanent.");
showCopySourceButton.setToolTipText("This permanent is copying a target. To see original image, push this button or turn mouse wheel down while hovering with the mouse pointer over the permanent.");
copyIconPanel.setVisible(((PermanentView) this.gameCard).isCopy());
showCopySourceButton.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getCopyInformIconImage()));
@ -265,7 +265,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
addMouseMotionListener(this);
addMouseWheelListener(this);
addComponentListener(this);
displayTitleAnyway = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SHOW_CARD_NAMES, "true").equals("true");
titleText = new GlowText();
setText(gameCard);
@ -274,7 +274,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
titleText.setGlow(Color.black, TEXT_GLOW_SIZE, TEXT_GLOW_INTENSITY);
titleText.setWrap(true);
add(titleText);
ptText = new GlowText();
if (CardUtil.isCreature(gameCard)) {
ptText.setText(gameCard.getPower() + "/" + gameCard.getToughness());
@ -350,9 +350,9 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
if (toolTipText != null) {
typeButton.setToolTipText(toolTipText);
}
iconPanel.add(typeButton);
iconPanel.add(typeButton);
}
public void cleanUp() {
if (dayNightButton != null) {
for(ActionListener al: dayNightButton.getActionListeners()) {
@ -596,7 +596,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
int offsetX = Math.round((CARD_SIZE_FULL.width - cardWidth) / 10.0f);
ptText.setLocation(cardXOffset + ptX - TEXT_GLOW_SIZE / 2 - offsetX, cardYOffset + ptY - TEXT_GLOW_SIZE / 2);
if (isAnimationPanel || cardWidth < 200) {
imagePanel.setScalingType(ScalingType.nearestNeighbor);
} else {
@ -842,7 +842,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
dayNightButton.setIcon(new ImageIcon(transformIcon));
}
}
if (counterPanel != null) {
updateCounters(card);
}
@ -1161,7 +1161,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
this.gameCard = this.temporary;
this.temporary = null;
update(this.gameCard);
}
}
}
String temp = this.gameCard.getAlternateName();
this.gameCard.setAlternateName(this.gameCard.getOriginalName());

View file

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

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
*/
public class SoldeviSage extends CardImpl {
public class SoldeviSage1 extends CardImpl {
public SoldeviSage(UUID ownerId) {
public SoldeviSage1(UUID ownerId) {
super(ownerId, 51, "Soldevi Sage", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.expansionSetCode = "ALL";
this.subtype.add("Human");
@ -70,13 +70,13 @@ public class SoldeviSage extends CardImpl {
this.addAbility(ability);
}
public SoldeviSage(final SoldeviSage card) {
public SoldeviSage1(final SoldeviSage1 card) {
super(card);
}
@Override
public SoldeviSage copy() {
return new SoldeviSage(this);
public SoldeviSage1 copy() {
return new SoldeviSage1(this);
}
}
@ -86,7 +86,7 @@ class SoldeviSageEffect extends OneShotEffect {
super(Outcome.DrawCard);
this.staticText = "Draw three cards, then discard one of them";
}
public SoldeviSageEffect(final SoldeviSageEffect effect) {
super(effect);
}
@ -95,7 +95,7 @@ class SoldeviSageEffect extends OneShotEffect {
public SoldeviSageEffect copy() {
return new SoldeviSageEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
@ -108,7 +108,7 @@ class SoldeviSageEffect extends OneShotEffect {
drawnCards.add(cardId);
}
}
if (drawnCards.size() > 0) {
TargetCard cardToDiscard = new TargetCard(Zone.PICK, new FilterCard("card to discard"));
cardToDiscard.setNotTarget(true);
@ -119,10 +119,10 @@ class SoldeviSageEffect extends OneShotEffect {
}
}
}
return true;
}
return false;
}
}

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

View file

@ -42,7 +42,7 @@ import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.FlipSourceEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.Predicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.game.Game;
@ -88,7 +88,7 @@ public class KitsuneMystic extends CardImpl {
class AutumnTailKitsuneSage extends Token {
private static final FilterEnchantment filter = new FilterEnchantment("Aura attached to a creature");
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Aura attached to a creature");
static {
filter.add(new AttachmentAttachedToCardTypePredicate(CardType.CREATURE));

View file

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

View file

@ -37,6 +37,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
@ -49,7 +50,7 @@ import mage.game.stack.Spell;
* @author emerald000
*/
public class Dovescape extends CardImpl {
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
static {
filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
@ -61,7 +62,7 @@ public class Dovescape extends CardImpl {
// Whenever a player casts a noncreature spell, counter that spell. That player puts X 1/1 white and blue Bird creature tokens with flying onto the battlefield, where X is the spell's converted mana cost.
this.addAbility(new SpellCastAllTriggeredAbility(new DovescapeEffect(), filter, false, true));
this.addAbility(new SpellCastAllTriggeredAbility(new DovescapeEffect(), filter, false, SetTargetPointer.SPELL));
}
public Dovescape(final Dovescape card) {
@ -75,21 +76,21 @@ public class Dovescape extends CardImpl {
}
class DovescapeEffect extends OneShotEffect {
DovescapeEffect() {
super(Outcome.Benefit);
this.staticText = "counter that spell. That player puts X 1/1 white and blue Bird creature tokens with flying onto the battlefield, where X is the spell's converted mana cost";
}
DovescapeEffect(final DovescapeEffect effect) {
super(effect);
}
@Override
public DovescapeEffect copy() {
return new DovescapeEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(this.getTargetPointer().getFirst(game, source));

View file

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

View file

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

View file

@ -41,8 +41,8 @@ import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.game.permanent.token.Token;
import mage.target.common.TargetControlledCreaturePermanent;
@ -55,9 +55,11 @@ import mage.target.common.TargetCreaturePermanent;
public class AmbushCommander extends CardImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an Elf");
private static final FilterControlledPermanent filter2 = new FilterControlledPermanent("Forests you control");
static {
filter.add(new SubtypePredicate("Elf"));
filter2.add(new SubtypePredicate("Forest"));
}
public AmbushCommander(UUID ownerId) {
@ -69,9 +71,11 @@ public class AmbushCommander extends CardImpl {
this.toughness = new MageInt(2);
// Forests you control are 1/1 green Elf creatures that are still lands.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAllEffect(new AmbushCommanderToken(), "lands", new FilterPermanent("Forest", "Forests"), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAllEffect(new AmbushCommanderToken(),
"lands", filter2, Duration.WhileOnBattlefield)));
// {1}{G}, Sacrifice an Elf: Target creature gets +3/+3 until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3,3, Duration.EndOfTurn), new ManaCostsImpl("{1}{G}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3,3, Duration.EndOfTurn),
new ManaCostsImpl("{1}{G}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1, filter, true)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
@ -97,4 +101,4 @@ class AmbushCommanderToken extends Token {
color.setGreen(true);
}
}
}

View file

@ -40,11 +40,11 @@ import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.ColorPredicate;
import mage.game.Game;
import mage.game.stack.Spell;
import mage.players.Player;
/**
@ -52,9 +52,9 @@ import mage.players.Player;
* @author jeffwadsworth
*/
public class SootImp extends CardImpl {
static final private FilterSpell filter = new FilterSpell("a nonblack spell");
static {
filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK)));
}
@ -69,10 +69,10 @@ public class SootImp extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Whenever a player casts a nonblack spell, that player loses 1 life.
this.addAbility(new SpellCastAllTriggeredAbility(new SootImpEffect(), filter, false, true));
this.addAbility(new SpellCastAllTriggeredAbility(new SootImpEffect(), filter, false, SetTargetPointer.PLAYER));
}
public SootImp(final SootImp card) {
@ -103,11 +103,7 @@ class SootImpEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
Player caster = null;
if (spell != null) {
caster = game.getPlayer(spell.getControllerId());
}
Player caster = game.getPlayer(targetPointer.getFirst(game, source));
if (caster != null) {
caster.loseLife(1, game);
return true;

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

View file

@ -1,16 +1,16 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
@ -20,39 +20,33 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.fallenempires;
package mage.filter.common;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
import java.util.UUID;
/**
*
* @author nantuko
* @author LoneFox
*/
public class FilterEnchantment extends FilterPermanent {
public class BrassclawOrcs2 extends mage.sets.fallenempires.BrassclawOrcs1 {
public FilterEnchantment() {
this("enchantment");
public BrassclawOrcs2(UUID ownerId) {
super(ownerId);
this.cardNumber = 101;
}
public FilterEnchantment(String name) {
super(name);
this.add(new CardTypePredicate(CardType.ENCHANTMENT));
}
public FilterEnchantment(final FilterEnchantment filter) {
super(filter);
public BrassclawOrcs2(final BrassclawOrcs2 card) {
super(card);
}
@Override
public FilterEnchantment copy() {
return new FilterEnchantment(this);
public BrassclawOrcs2 copy() {
return new BrassclawOrcs2(this);
}
}

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
*/
public class GoblinChirurgeon extends CardImpl {
public class GoblinChirurgeon1 extends CardImpl {
public GoblinChirurgeon(UUID ownerId) {
public GoblinChirurgeon1(UUID ownerId) {
super(ownerId, 110, "Goblin Chirurgeon", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}");
this.expansionSetCode = "FEM";
this.subtype.add("Goblin");
@ -56,19 +56,19 @@ public class GoblinChirurgeon extends CardImpl {
this.toughness = new MageInt(2);
// Sacrifice a Goblin: Regenerate target creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new RegenerateTargetEffect(),
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new RegenerateTargetEffect(),
new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("Goblin","a Goblin"))));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
public GoblinChirurgeon(final GoblinChirurgeon card) {
public GoblinChirurgeon1(final GoblinChirurgeon1 card) {
super(card);
}
@Override
public GoblinChirurgeon copy() {
return new GoblinChirurgeon(this);
public GoblinChirurgeon1 copy() {
return new GoblinChirurgeon1(this);
}
}

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

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

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
*/
public class Thallid extends mage.sets.timeshifted.Thallid {
public class Thallid1 extends mage.sets.timeshifted.Thallid {
public Thallid(UUID ownerId) {
public Thallid1(UUID ownerId) {
super(ownerId);
this.cardNumber = 87;
this.expansionSetCode = "FEM";
this.rarity = Rarity.COMMON;
}
public Thallid(final Thallid card) {
public Thallid1(final Thallid1 card) {
super(card);
}
@Override
public Thallid copy() {
return new Thallid(this);
public Thallid1 copy() {
return new Thallid1(this);
}
}

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
*/
public class ThornThallid extends CardImpl {
public class ThornThallid1 extends CardImpl {
public ThornThallid(UUID ownerId) {
public ThornThallid1(UUID ownerId) {
super(ownerId, 96, "Thorn Thallid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}{G}");
this.expansionSetCode = "FEM";
this.subtype.add("Fungus");
@ -59,19 +59,19 @@ public class ThornThallid extends CardImpl {
// At the beginning of your upkeep, put a spore counter on Thorn Thallid.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.SPORE.createInstance()), TargetController.YOU, false));
// Remove three spore counters from Thorn Thallid: Thorn Thallid deals 1 damage to target creature or player.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new DamageTargetEffect(1),
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new DamageTargetEffect(1),
new RemoveCountersSourceCost(CounterType.SPORE.createInstance(3)));
ability.addTarget(new TargetCreatureOrPlayer());
this.addAbility(ability);
}
public ThornThallid(final ThornThallid card) {
public ThornThallid1(final ThornThallid1 card) {
super(card);
}
@Override
public ThornThallid copy() {
return new ThornThallid(this);
public ThornThallid1 copy() {
return new ThornThallid1(this);
}
}

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
*/
public class VodalianSoldiers extends mage.sets.fifthedition.VodalianSoldiers {
public class VodalianSoldiers1 extends mage.sets.fifthedition.VodalianSoldiers {
public VodalianSoldiers(UUID ownerId) {
public VodalianSoldiers1(UUID ownerId) {
super(ownerId);
this.cardNumber = 62;
this.expansionSetCode = "FEM";
}
public VodalianSoldiers(final VodalianSoldiers card) {
public VodalianSoldiers1(final VodalianSoldiers1 card) {
super(card);
}
@Override
public VodalianSoldiers copy() {
return new VodalianSoldiers(this);
public VodalianSoldiers1 copy() {
return new VodalianSoldiers1(this);
}
}

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
*/
public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs {
public class BrassclawOrcs extends mage.sets.fallenempires.BrassclawOrcs1 {
public BrassclawOrcs(UUID ownerId) {
super(ownerId);

View file

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

View file

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

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,16 +42,16 @@ import mage.filter.predicate.mageobject.ColorPredicate;
*
* @author fireshoes
*/
public class CemeteryGate extends CardImpl {
public class CemeteryGate1 extends CardImpl {
private static final FilterCard filter = new FilterCard("Black");
static {
filter.add(new ColorPredicate(ObjectColor.BLACK));
}
public CemeteryGate(UUID ownerId) {
super(ownerId, 5, "Cemetery Gate", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
public CemeteryGate1(UUID ownerId) {
super(ownerId, 4, "Cemetery Gate", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
this.expansionSetCode = "HML";
this.subtype.add("Wall");
this.power = new MageInt(0);
@ -59,17 +59,17 @@ public class CemeteryGate extends CardImpl {
// Defender
this.addAbility(DefenderAbility.getInstance());
// Protection from black
this.addAbility(new ProtectionAbility(filter));
}
public CemeteryGate(final CemeteryGate card) {
public CemeteryGate1(final CemeteryGate1 card) {
super(card);
}
@Override
public CemeteryGate copy() {
return new CemeteryGate(this);
public CemeteryGate1 copy() {
return new CemeteryGate1(this);
}
}

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
*/
public class Torture extends CardImpl {
public class Torture1 extends CardImpl {
private static final String rule = "Testing rules";
public Torture(UUID ownerId) {
public Torture1(UUID ownerId) {
super(ownerId, 23, "Torture", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{B}");
this.expansionSetCode = "HML";
this.subtype.add("Aura");
@ -64,7 +64,7 @@ public class Torture extends CardImpl {
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
// {1}{B}: Put a -1/-1 counter on enchanted creature.
//this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersAttachedEffect(CounterType.M1M1.createInstance(), rule), new ManaCostsImpl("[1}{B}")));
this.addAbility(new SimpleActivatedAbility(
@ -73,12 +73,12 @@ public class Torture extends CardImpl {
new ManaCostsImpl("{1}{B}")));
}
public Torture(final Torture card) {
public Torture1(final Torture1 card) {
super(card);
}
@Override
public Torture copy() {
return new Torture(this);
public Torture1 copy() {
return new Torture1(this);
}
}

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

View file

@ -36,6 +36,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.constants.Zone;
import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.CardTypePredicate;
@ -48,7 +49,7 @@ import mage.players.Player;
* @author emerald000
*/
public class InTheEyeOfChaos extends CardImpl {
private static final FilterSpell filter = new FilterSpell("an instant spell");
static {
filter.add(new CardTypePredicate(CardType.INSTANT));
@ -61,7 +62,7 @@ public class InTheEyeOfChaos extends CardImpl {
// Whenever a player casts an instant spell, counter it unless that player pays {X}, where X is its converted mana cost.
this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new InTheEyeOfChaosEffect(), filter, false, true));
this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new InTheEyeOfChaosEffect(), filter, false, SetTargetPointer.SPELL));
}
public InTheEyeOfChaos(final InTheEyeOfChaos card) {
@ -75,21 +76,21 @@ public class InTheEyeOfChaos extends CardImpl {
}
class InTheEyeOfChaosEffect extends OneShotEffect {
InTheEyeOfChaosEffect() {
super(Outcome.Detriment);
this.staticText = "counter it unless that player pays {X}, where X is its converted mana cost";
}
InTheEyeOfChaosEffect(final InTheEyeOfChaosEffect effect) {
super(effect);
}
@Override
public InTheEyeOfChaosEffect copy() {
return new InTheEyeOfChaosEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
StackObject spell = game.getStack().getStackObject(targetPointer.getFirst(game, source));

View file

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

View file

@ -40,7 +40,7 @@ import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
/**
@ -48,8 +48,8 @@ import mage.filter.predicate.permanent.ControllerPredicate;
* @author fireshoes
*/
public class HelmOfTheGods extends CardImpl {
private static final FilterEnchantment filter = new FilterEnchantment("enchantment you control");
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("enchantment you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
@ -61,11 +61,11 @@ public class HelmOfTheGods extends CardImpl {
this.subtype.add("Equipment");
// Equipped creature gets +1/+1 for each enchantment you control.
PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(new FilterEnchantment(filter));
PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(new FilterEnchantmentPermanent(filter));
Effect effect = new BoostEquippedEffect(countEnchantments, countEnchantments);
effect.setText("Equipped creature gets +1/+1 for each enchantment you control");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
// Equip {1}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1)));
}

View file

@ -45,7 +45,6 @@ import mage.constants.SubLayer;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
@ -62,11 +61,11 @@ import mage.target.common.TargetCardInGraveyard;
* @author fireshoes
*/
public class StarfieldOfNyx extends CardImpl {
private static final String rule1 = "As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost.";
private static final FilterCard filterGraveyardEnchantment = new FilterCard("enchantment card from your graveyard");
private static final FilterEnchantment filterEnchantmentYouControl = new FilterEnchantment("enchantment you control");
private static final FilterEnchantmentPermanent filterEnchantmentYouControl = new FilterEnchantmentPermanent("enchantment you control");
static {
filterEnchantmentYouControl.add(new ControllerPredicate(TargetController.YOU));
@ -81,11 +80,11 @@ public class StarfieldOfNyx extends CardImpl {
this.expansionSetCode = "ORI";
// At the beginning of your upkeep, you may return target enchantment card from your graveyard to the battlefield.
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD,
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD,
new ReturnFromGraveyardToBattlefieldTargetEffect(), TargetController.YOU, true);
ability.addTarget(new TargetCardInGraveyard(filterGraveyardEnchantment));
this.addAbility(ability);
// As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost.
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new StarfieldOfNyxEffect(), new PermanentsOnTheBattlefieldCondition(filterEnchantmentYouControl, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 4), rule1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
@ -109,7 +108,7 @@ class StarfieldOfNyxEffect extends ContinuousEffectImpl {
filter.add(new AnotherPredicate());
filter.add(new OwnerPredicate(TargetController.YOU));
}
public StarfieldOfNyxEffect() {
super(Duration.WhileOnBattlefield, Outcome.BecomeCreature);
staticText = "Each other non-Aura enchantment is a creature in addition to its other types and has base power and toughness each equal to its converted mana cost";
@ -159,4 +158,4 @@ class StarfieldOfNyxEffect extends ContinuousEffectImpl {
return layer == Layer.PTChangingEffects_7 || layer == Layer.TypeChangingEffects_4;
}
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,18 +2,18 @@ package mage.sets.mediainserts;
import java.util.UUID;
public class HighTide extends mage.sets.fallenempires.HighTide {
public class HighTide extends mage.sets.fallenempires.HighTide1 {
public HighTide(UUID ownerId) {
super(ownerId);
this.cardNumber = 80;
this.expansionSetCode = "MBP";
}
public HighTide(final HighTide card) {
super(card);
}
@Override
public HighTide copy() {
return new HighTide(this);

View file

@ -44,9 +44,9 @@ import mage.constants.Rarity;
import mage.constants.TargetController;
import mage.filter.FilterSpell;
import mage.game.Game;
import mage.game.stack.Spell;
import mage.players.Player;
import mage.target.targetpointer.FixedTarget;
import mage.constants.SetTargetPointer;
/**
*
@ -59,7 +59,7 @@ public class HornOfPlenty extends CardImpl {
this.expansionSetCode = "MMQ";
// Whenever a player casts a spell, he or she may pay {1}. If that player does, he or she draws a card at the beginning of the next end step.
this.addAbility(new SpellCastAllTriggeredAbility(new HornOfPlentyEffect(), new FilterSpell("a spell"), false, true));
this.addAbility(new SpellCastAllTriggeredAbility(new HornOfPlentyEffect(), new FilterSpell("a spell"), false, SetTargetPointer.PLAYER));
}
public HornOfPlenty(final HornOfPlenty card) {
@ -90,11 +90,7 @@ class HornOfPlentyEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
Player caster = null;
if (spell != null) {
caster = game.getPlayer(spell.getControllerId());
}
Player caster = game.getPlayer(targetPointer.getFirst(game, source));
if (caster != null) {
if (caster.chooseUse(Outcome.DrawCard, "Pay {1} to draw a card at the beginning of the next end step?", source, game)) {
Cost cost = new ManaCostsImpl("{1}");

View file

@ -32,27 +32,26 @@ import mage.abilities.Ability;
import mage.abilities.common.SpellCastAllTriggeredAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.SetTargetPointer;
import mage.filter.FilterSpell;
import mage.game.Game;
import mage.game.stack.Spell;
import mage.players.Player;
import mage.target.targetpointer.FixedTarget;
/**
*
* @author cbt33, Level_X2 (Horn of Plenty)
*/
public class UnifyingTheory extends CardImpl {
public UnifyingTheory(UUID ownerId) {
@ -61,7 +60,7 @@ public class UnifyingTheory extends CardImpl {
// Whenever a player casts a spell, that player may pay {2}. If the player does, he or she draws a card.
this.addAbility(new SpellCastAllTriggeredAbility(new UnifyingTheoryEffect() , new FilterSpell("a spell"), false, true));
this.addAbility(new SpellCastAllTriggeredAbility(new UnifyingTheoryEffect() , new FilterSpell("a spell"), false, SetTargetPointer.PLAYER));
}
public UnifyingTheory(final UnifyingTheory card) {
@ -92,11 +91,7 @@ class UnifyingTheoryEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
Player caster = null;
if (spell != null) {
caster = game.getPlayer(spell.getControllerId());
}
Player caster = game.getPlayer(targetPointer.getFirst(game, source));
if (caster != null) {
if (caster.chooseUse(Outcome.DrawCard, "Pay {2} to draw a card?", source, game)) {
Cost cost = new ManaCostsImpl("{2}");

View file

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

View file

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

View file

@ -37,7 +37,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.ReplacementEffectImpl;
import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
@ -73,13 +73,13 @@ public class SphereOfSafety extends CardImpl {
class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl {
private static final String effectText = "Creatures can't attack you or a planeswalker you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control";
private static final FilterEnchantment filter = new FilterEnchantment("enchantment you control");
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("enchantment you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
private final PermanentsOnBattlefieldCount countEnchantments = new PermanentsOnBattlefieldCount(filter);
SphereOfSafetyReplacementEffect ( ) {
super(Duration.WhileOnBattlefield, Outcome.Benefit);
staticText = effectText;
@ -88,7 +88,7 @@ class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl {
SphereOfSafetyReplacementEffect ( SphereOfSafetyReplacementEffect effect ) {
super(effect);
}
@Override
public boolean checksEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.DECLARE_ATTACKER;
@ -124,7 +124,7 @@ class SphereOfSafetyReplacementEffect extends ReplacementEffectImpl {
}
return false;
}
@Override
public SphereOfSafetyReplacementEffect copy() {
return new SphereOfSafetyReplacementEffect(this);

View file

@ -36,7 +36,7 @@ import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.Game;
@ -52,7 +52,7 @@ import mage.target.common.TargetCreaturePermanent;
*/
public class AuraFinesse extends CardImpl {
private static final FilterEnchantment filter = new FilterEnchantment("Aura you control");
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Aura you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
@ -115,7 +115,7 @@ class AuraFinesseEffect extends OneShotEffect {
creature.addAttachment(aura.getId(), game);
}
}
}
}
return true;
}
return false;

View file

@ -37,7 +37,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.keyword.TotemArmorAbility;
import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.ObjectPlayer;
import mage.filter.predicate.ObjectPlayerPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -50,7 +50,7 @@ import mage.game.permanent.Permanent;
*/
public class UmbraMystic extends CardImpl {
private static final FilterEnchantment filter = new FilterEnchantment("Auras attached to permanents you control");
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Auras attached to permanents you control");
static {
filter.add(new SubtypePredicate("Aura"));

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
*/
public class Torture extends mage.sets.homelands.Torture {
public class Torture extends mage.sets.homelands.Torture1 {
public Torture(UUID ownerId) {
super(ownerId);

View file

@ -70,7 +70,7 @@ public class DeepSeaKraken extends CardImpl {
this.addAbility(new SuspendAbility(9, new ManaCostsImpl("{2}{U}"), this));
// Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it.
this.addAbility(new ConditionalTriggeredAbility(
new SpellCastAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), filter, false, false), SuspendedCondition.getInstance(),
new SpellCastAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), filter, false, null), SuspendedCondition.getInstance(),
"Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it.", false));
}

View file

@ -37,7 +37,7 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterEnchantment;
import mage.filter.common.FilterEnchantmentPermanent;
import mage.filter.predicate.ObjectPlayer;
import mage.filter.predicate.ObjectPlayerPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -50,9 +50,9 @@ import mage.target.TargetPermanent;
* @author Plopman
*/
public class DevoutHarpist extends CardImpl {
private static final FilterEnchantment filter = new FilterEnchantment("Auras attached to a creature");
static
{
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Auras attached to a creature");
static
{
filter.add(new SubtypePredicate("Aura"));
filter.add(new DevoutHarpistPredicate());
}
@ -69,7 +69,7 @@ public class DevoutHarpist extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost());
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
}
public DevoutHarpist(final DevoutHarpist card) {
@ -80,11 +80,11 @@ public class DevoutHarpist extends CardImpl {
public DevoutHarpist copy() {
return new DevoutHarpist(this);
}
}
class DevoutHarpistPredicate implements ObjectPlayerPredicate<ObjectPlayer<Permanent>> {
@Override
class DevoutHarpistPredicate implements ObjectPlayerPredicate<ObjectPlayer<Permanent>> {
@Override
public boolean apply(ObjectPlayer<Permanent> input, Game game) {
Permanent attachement = input.getObject();
if (attachement != null) {

View file

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

View file

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

View file

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

View file

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