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