diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/LongForgottenGohei.java b/Mage.Sets/src/mage/sets/championsofkamigawa/LongForgottenGohei.java index 35429ee0b0a..ce8ff0d8c6a 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/LongForgottenGohei.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/LongForgottenGohei.java @@ -59,21 +59,22 @@ public class LongForgottenGohei extends CardImpl { } public LongForgottenGohei(UUID ownerId) { - super(ownerId, 261, "Long-Forgotten Gohei", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.expansionSetCode = "CHK"; - - // Arcane spells you cast cost {1} less to cast. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(arcaneFilter, 1))); - - // Spirit creatures you control get +1/+1. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, spiritFilter, false))); + super(ownerId, 261, "Long-Forgotten Gohei", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "CHK"; + + // Arcane spells you cast cost {1} less to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(arcaneFilter, 1))); + + // Spirit creatures you control get +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, spiritFilter, false))); } public LongForgottenGohei(final LongForgottenGohei card) { - super(card); + super(card); } + @Override public LongForgottenGohei copy() { - return new LongForgottenGohei(this); + return new LongForgottenGohei(this); } } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/YamabushisFlame.java b/Mage.Sets/src/mage/sets/championsofkamigawa/YamabushisFlame.java index 41ddd23b085..1e1ca21a8aa 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/YamabushisFlame.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/YamabushisFlame.java @@ -46,21 +46,20 @@ import mage.watchers.common.DamagedByWatcher; public class YamabushisFlame extends CardImpl { public YamabushisFlame(UUID ownerId) { - super(ownerId, 198, "Yamabushi's Flame", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); - this.expansionSetCode = "CHK"; + super(ownerId, 198, "Yamabushi's Flame", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); + this.expansionSetCode = "CHK"; + // Yamabushi's Flame deals 3 damage to target creature or player. + this.getSpellAbility().addEffect(new DamageTargetEffect(3)); + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); - // Yamabushi's Flame deals 3 damage to target creature or player. - this.getSpellAbility().addEffect(new DamageTargetEffect(3)); - this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); + // If a creature dealt damage this way would die this turn, exile it instead. + this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); + this.getSpellAbility().addWatcher(new DamagedByWatcher()); + } - // If a creature dealt damage this way would die this turn, exile it instead. - this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); - this.getSpellAbility().addWatcher(new DamagedByWatcher()); - } - - public YamabushisFlame(final YamabushisFlame card) { - super(card); + public YamabushisFlame(final YamabushisFlame card) { + super(card); } @Override diff --git a/Mage.Sets/src/mage/sets/coldsnap/ThrummingStone.java b/Mage.Sets/src/mage/sets/coldsnap/ThrummingStone.java index a7a7b45af73..63b15e9e53a 100644 --- a/Mage.Sets/src/mage/sets/coldsnap/ThrummingStone.java +++ b/Mage.Sets/src/mage/sets/coldsnap/ThrummingStone.java @@ -53,73 +53,69 @@ import java.util.UUID; */ public class ThrummingStone extends CardImpl { - //applies to all spells - private static final FilterSpell anySpellFilter = new FilterSpell("Spells you cast"); + //applies to all spells + private static final FilterSpell anySpellFilter = new FilterSpell("Spells you cast"); - public ThrummingStone(UUID ownerId) { - super(ownerId, 142, "Thrumming Stone", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{5}"); - this.expansionSetCode = "CSP"; - this.supertype.add("Legendary"); + public ThrummingStone(UUID ownerId) { + super(ownerId, 142, "Thrumming Stone", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{5}"); + this.expansionSetCode = "CSP"; + this.supertype.add("Legendary"); - // spells you cast have Ripple 4 - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ThrummingStoneGainAbilitySpellsEffect(new RippleAbility(4), anySpellFilter))); - } + // spells you cast have Ripple 4 + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ThrummingStoneGainAbilitySpellsEffect(new RippleAbility(4), anySpellFilter))); + } - public ThrummingStone(final ThrummingStone card) { - super(card); - } - - @Override - public ThrummingStone copy() { - return new ThrummingStone(this); - } + public ThrummingStone(final ThrummingStone card) { + super(card); + } + @Override + public ThrummingStone copy() { + return new ThrummingStone(this); + } } class ThrummingStoneGainAbilitySpellsEffect extends ContinuousEffectImpl { - private final Ability ability; - private final FilterSpell filter; + private final Ability ability; + private final FilterSpell filter; - - public ThrummingStoneGainAbilitySpellsEffect(Ability ability, FilterSpell filter) { - super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); - this.ability = ability; - this.filter = filter; - staticText = filter.getMessage() + " have " + ability.getRule(); - } - - public ThrummingStoneGainAbilitySpellsEffect(final ThrummingStoneGainAbilitySpellsEffect effect) { - super(effect); - this.ability = effect.ability.copy(); - this.filter = effect.filter.copy(); - } - - @Override - public ThrummingStoneGainAbilitySpellsEffect copy() { - return new ThrummingStoneGainAbilitySpellsEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - Permanent permanent = game.getPermanent(source.getSourceId()); - if (player != null && permanent != null) { - for (StackObject stackObject : game.getStack()) { - // only spells cast, so no copies of spells - if ((stackObject instanceof Spell) && !stackObject.isCopy() && stackObject.getControllerId().equals(source.getControllerId())) { - Spell spell = (Spell) stackObject; - if (filter.match(spell, game)) { - if (!spell.getAbilities().contains(ability)) { - game.getState().addOtherAbility(spell.getCard(), ability); - } - } - } - } - return true; + public ThrummingStoneGainAbilitySpellsEffect(Ability ability, FilterSpell filter) { + super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); + this.ability = ability; + this.filter = filter; + staticText = filter.getMessage() + " have " + ability.getRule(); + } + + public ThrummingStoneGainAbilitySpellsEffect(final ThrummingStoneGainAbilitySpellsEffect effect) { + super(effect); + this.ability = effect.ability.copy(); + this.filter = effect.filter.copy(); + } + + @Override + public ThrummingStoneGainAbilitySpellsEffect copy() { + return new ThrummingStoneGainAbilitySpellsEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + Permanent permanent = game.getPermanent(source.getSourceId()); + if (player != null && permanent != null) { + for (StackObject stackObject : game.getStack()) { + // only spells cast, so no copies of spells + if ((stackObject instanceof Spell) && !stackObject.isCopy() && stackObject.getControllerId().equals(source.getControllerId())) { + Spell spell = (Spell) stackObject; + if (filter.match(spell, game)) { + if (!spell.getAbilities().contains(ability)) { + game.getState().addOtherAbility(spell.getCard(), ability); + } + } + } + } + return true; + } + return false; } - return false; - } } - - diff --git a/Mage.Sets/src/mage/sets/eighthedition/Rhox.java b/Mage.Sets/src/mage/sets/eighthedition/Rhox.java index e6c86cbefa9..6c7f2f19b63 100644 --- a/Mage.Sets/src/mage/sets/eighthedition/Rhox.java +++ b/Mage.Sets/src/mage/sets/eighthedition/Rhox.java @@ -1 +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.eighthedition;import java.util.UUID;/** * * @author Backfir3 */public class Rhox extends mage.sets.tenthedition.Rhox { public Rhox(UUID ownerId) { super(ownerId); this.cardNumber = 277; this.expansionSetCode = "8ED"; } public Rhox(final Rhox card) { super(card); } @Override public Rhox copy() { return new Rhox(this); }} \ No newline at end of file +/* + * 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.eighthedition; + +import java.util.UUID; + +/** + * + * @author Backfir3 + */ +public class Rhox extends mage.sets.tenthedition.Rhox { + + public Rhox(UUID ownerId) { + super(ownerId); + this.cardNumber = 277; + this.expansionSetCode = "8ED"; + } + + public Rhox(final Rhox card) { + super(card); + } + + @Override + public Rhox copy() { + return new Rhox(this); + } +} diff --git a/Mage.Sets/src/mage/sets/gatecrash/AssembleTheLegion.java b/Mage.Sets/src/mage/sets/gatecrash/AssembleTheLegion.java index 7f22f2c3980..3184f889cac 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/AssembleTheLegion.java +++ b/Mage.Sets/src/mage/sets/gatecrash/AssembleTheLegion.java @@ -47,22 +47,21 @@ import mage.game.permanent.token.SoldierTokenWithHaste; public class AssembleTheLegion extends CardImpl { public AssembleTheLegion(UUID ownerId) { - super(ownerId, 142, "Assemble the Legion", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}{W}"); - this.expansionSetCode = "GTC"; + super(ownerId, 142, "Assemble the Legion", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}{W}"); + this.expansionSetCode = "GTC"; - - // At the beginning of your upkeep, put a muster counter on Assemble the Legion. Then put a 1/1 red and white Soldier creature token with haste onto the battlefield for each muster counter on Assemble the Legion. - Ability ability = new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.MUSTER.createInstance()), TargetController.YOU, false); - ability.addEffect(new CreateTokenEffect(new SoldierTokenWithHaste(), new CountersCount(CounterType.MUSTER))); - this.addAbility(ability); + // At the beginning of your upkeep, put a muster counter on Assemble the Legion. Then put a 1/1 red and white Soldier creature token with haste onto the battlefield for each muster counter on Assemble the Legion. + Ability ability = new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.MUSTER.createInstance()), TargetController.YOU, false); + ability.addEffect(new CreateTokenEffect(new SoldierTokenWithHaste(), new CountersCount(CounterType.MUSTER))); + this.addAbility(ability); } public AssembleTheLegion(final AssembleTheLegion card) { - super(card); + super(card); } @Override public AssembleTheLegion copy() { - return new AssembleTheLegion(this); + return new AssembleTheLegion(this); } } diff --git a/Mage.Sets/src/mage/sets/gatecrash/NightveilSpecter.java b/Mage.Sets/src/mage/sets/gatecrash/NightveilSpecter.java index 645de1adfee..aab633f4a56 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/NightveilSpecter.java +++ b/Mage.Sets/src/mage/sets/gatecrash/NightveilSpecter.java @@ -66,93 +66,92 @@ import mage.util.CardUtil; public class NightveilSpecter extends CardImpl { public NightveilSpecter(UUID ownerId) { - super(ownerId, 222, "Nightveil Specter", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{U/B}{U/B}{U/B}"); - this.expansionSetCode = "GTC"; - this.subtype.add("Specter"); + super(ownerId, 222, "Nightveil Specter", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{U/B}{U/B}{U/B}"); + this.expansionSetCode = "GTC"; + this.subtype.add("Specter"); - this.power = new MageInt(2); - this.toughness = new MageInt(3); + this.power = new MageInt(2); + this.toughness = new MageInt(3); - // Flying - this.addAbility(FlyingAbility.getInstance()); + // Flying + this.addAbility(FlyingAbility.getInstance()); - // Whenever Nightveil Specter deals combat damage to a player, that player exiles the top card of his or her library. - this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new NightveilSpecterExileEffect(),false, true)); + // Whenever Nightveil Specter deals combat damage to a player, that player exiles the top card of his or her library. + this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new NightveilSpecterExileEffect(),false, true)); - // You may play cards exiled with Nightveil Specter. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new NightveilSpecterEffect())); + // You may play cards exiled with Nightveil Specter. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new NightveilSpecterEffect())); } public NightveilSpecter(final NightveilSpecter card) { - super(card); + super(card); } @Override public NightveilSpecter copy() { - return new NightveilSpecter(this); + return new NightveilSpecter(this); } } class NightveilSpecterExileEffect extends OneShotEffect { public NightveilSpecterExileEffect() { - super(Outcome.Discard); - staticText = "that player exiles the top card of his or her library"; + super(Outcome.Discard); + staticText = "that player exiles the top card of his or her library"; } public NightveilSpecterExileEffect(final NightveilSpecterExileEffect effect) { - super(effect); + super(effect); } @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(game, source)); - if (player != null) { - Card card = player.getLibrary().removeFromTop(game); - MageObject sourceObject = game.getObject(source.getSourceId()); - if (card != null && sourceObject != null) { - player.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourceObject.getIdName(), source.getSourceId(), game, Zone.LIBRARY, true); - return true; - } - } - return false; + Player player = game.getPlayer(targetPointer.getFirst(game, source)); + if (player != null) { + Card card = player.getLibrary().removeFromTop(game); + MageObject sourceObject = game.getObject(source.getSourceId()); + if (card != null && sourceObject != null) { + player.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourceObject.getIdName(), source.getSourceId(), game, Zone.LIBRARY, true); + return true; + } + } + return false; } @Override public NightveilSpecterExileEffect copy() { - return new NightveilSpecterExileEffect(this); + return new NightveilSpecterExileEffect(this); } } class NightveilSpecterEffect extends AsThoughEffectImpl { public NightveilSpecterEffect() { - super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit); - staticText = "You may play cards exiled with {this}"; + super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit); + staticText = "You may play cards exiled with {this}"; } public NightveilSpecterEffect(final NightveilSpecterEffect effect) { - super(effect); + super(effect); } - @Override public boolean apply(Game game, Ability source) { - return true; + return true; } @Override public NightveilSpecterEffect copy() { - return new NightveilSpecterEffect(this); + return new NightveilSpecterEffect(this); } @Override public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { - Card card = game.getCard(objectId); - if (affectedControllerId.equals(source.getControllerId()) && card != null && game.getState().getZone(card.getId()) == Zone.EXILED) { - ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); - return zone != null && zone.contains(card.getId()); - } - return false; + Card card = game.getCard(objectId); + if (affectedControllerId.equals(source.getControllerId()) && card != null && game.getState().getZone(card.getId()) == Zone.EXILED) { + ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); + return zone != null && zone.contains(card.getId()); + } + return false; } } diff --git a/Mage.Sets/src/mage/sets/gatecrash/ThrullParasite.java b/Mage.Sets/src/mage/sets/gatecrash/ThrullParasite.java index 53473a1d44e..81d32d21a2e 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/ThrullParasite.java +++ b/Mage.Sets/src/mage/sets/gatecrash/ThrullParasite.java @@ -48,28 +48,29 @@ import mage.target.common.TargetNonlandPermanent; public class ThrullParasite extends CardImpl { public ThrullParasite(UUID ownerId) { - super(ownerId, 81, "Thrull Parasite", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}"); - this.expansionSetCode = "GTC"; - this.subtype.add("Thrull"); + super(ownerId, 81, "Thrull Parasite", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetCode = "GTC"; + this.subtype.add("Thrull"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); + this.power = new MageInt(1); + this.toughness = new MageInt(1); - // Extort - this.addAbility(new ExtortAbility()); - // {tap}, Pay 2 life: Remove a counter from target nonland permanent. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RemoveCounterTargetEffect(), new TapSourceCost()); - ability.addTarget(new TargetNonlandPermanent()); - ability.addCost(new PayLifeCost(2)); - this.addAbility(ability); + // Extort + this.addAbility(new ExtortAbility()); + + // {tap}, Pay 2 life: Remove a counter from target nonland permanent. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RemoveCounterTargetEffect(), new TapSourceCost()); + ability.addTarget(new TargetNonlandPermanent()); + ability.addCost(new PayLifeCost(2)); + this.addAbility(ability); } public ThrullParasite(final ThrullParasite card) { - super(card); + super(card); } @Override public ThrullParasite copy() { - return new ThrullParasite(this); + return new ThrullParasite(this); } } diff --git a/Mage.Sets/src/mage/sets/invasion/UrborgSkeleton.java b/Mage.Sets/src/mage/sets/invasion/UrborgSkeleton.java index 8d41e41bb3d..a5bcb101c94 100644 --- a/Mage.Sets/src/mage/sets/invasion/UrborgSkeleton.java +++ b/Mage.Sets/src/mage/sets/invasion/UrborgSkeleton.java @@ -52,32 +52,32 @@ public class UrborgSkeleton extends CardImpl { private static final String staticText = "If Urborg Skeleton was kicked, it enters the battlefield with a +1/+1 counter on it"; public UrborgSkeleton(UUID ownerId) { - super(ownerId, 134, "Urborg Skeleton", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}"); - this.expansionSetCode = "INV"; - this.subtype.add("Skeleton"); + super(ownerId, 134, "Urborg Skeleton", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetCode = "INV"; + this.subtype.add("Skeleton"); - this.power = new MageInt(0); - this.toughness = new MageInt(1); + this.power = new MageInt(0); + this.toughness = new MageInt(1); - // Kicker {3} (You may pay an additional {3} as you cast this spell.) - this.addAbility(new KickerAbility("{3}")); + // Kicker {3} (You may pay an additional {3} as you cast this spell.) + this.addAbility(new KickerAbility("{3}")); - // {B}: Regenerate Urborg Skeleton. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}"))); + // {B}: Regenerate Urborg Skeleton. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}"))); - // If Urborg Skeleton was kicked, it enters the battlefield with a +1/+1 counter on it. - Ability ability = new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), - KickedCondition.getInstance(), staticText,""); - this.addAbility(ability); + // If Urborg Skeleton was kicked, it enters the battlefield with a +1/+1 counter on it. + Ability ability = new EntersBattlefieldAbility( + new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), + KickedCondition.getInstance(), staticText,""); + this.addAbility(ability); } public UrborgSkeleton(final UrborgSkeleton card) { - super(card); + super(card); } @Override public UrborgSkeleton copy() { - return new UrborgSkeleton(this); + return new UrborgSkeleton(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranBrute.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranBrute.java index a1b8a08bff2..99fbd5d6c91 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranBrute.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranBrute.java @@ -59,18 +59,18 @@ public class CateranBrute extends CardImpl { } public CateranBrute(UUID ownerId) { - super(ownerId, 120, "Cateran Brute", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Horror"); - this.subtype.add("Mercenary"); + super(ownerId, 120, "Cateran Brute", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Horror"); + this.subtype.add("Mercenary"); - this.power = new MageInt(2); - this.toughness = new MageInt(2); + this.power = new MageInt(2); + this.toughness = new MageInt(2); - // {2}, {T}: Search your library for a Mercenary permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(2)); - this.addAbility(ability); + // {2}, {T}: Search your library for a Mercenary permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(2)); + this.addAbility(ability); } public CateranBrute(final CateranBrute card) { @@ -81,5 +81,4 @@ public class CateranBrute extends CardImpl { public CateranBrute copy() { return new CateranBrute(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranEnforcer.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranEnforcer.java index 6bd10fe2ba4..d0a7940cefc 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranEnforcer.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranEnforcer.java @@ -60,19 +60,21 @@ public class CateranEnforcer extends CardImpl { } public CateranEnforcer(UUID ownerId) { - super(ownerId, 121, "Cateran Enforcer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Horror"); - this.subtype.add("Mercenary"); + super(ownerId, 121, "Cateran Enforcer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Horror"); + this.subtype.add("Mercenary"); - this.power = new MageInt(4); - this.toughness = new MageInt(3); - + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Fear this.addAbility(FearAbility.getInstance()); - // {4}, {T}: Search your library for a Mercenary permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(4)); - this.addAbility(ability); + + // {4}, {T}: Search your library for a Mercenary permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(4)); + this.addAbility(ability); } public CateranEnforcer(final CateranEnforcer card) { @@ -83,5 +85,4 @@ public class CateranEnforcer extends CardImpl { public CateranEnforcer copy() { return new CateranEnforcer(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranKidnappers.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranKidnappers.java index da9abb15495..db2579f0586 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranKidnappers.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranKidnappers.java @@ -55,22 +55,22 @@ public class CateranKidnappers extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); } public CateranKidnappers(UUID ownerId) { - super(ownerId, 122, "Cateran Kidnappers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Mercenary"); + super(ownerId, 122, "Cateran Kidnappers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Mercenary"); - this.power = new MageInt(4); - this.toughness = new MageInt(2); - - // {3}, {T}: Search your library for a Mercenary permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(3)); - this.addAbility(ability); + this.power = new MageInt(4); + this.toughness = new MageInt(2); + + // {3}, {T}: Search your library for a Mercenary permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(3)); + this.addAbility(ability); } public CateranKidnappers(final CateranKidnappers card) { @@ -81,5 +81,4 @@ public class CateranKidnappers extends CardImpl { public CateranKidnappers copy() { return new CateranKidnappers(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranOverlord.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranOverlord.java index e89a8b8461e..13310675403 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranOverlord.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranOverlord.java @@ -63,20 +63,21 @@ public class CateranOverlord extends CardImpl { } public CateranOverlord(UUID ownerId) { - super(ownerId, 123, "Cateran Overlord", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Horror"); - this.subtype.add("Mercenary"); + super(ownerId, 123, "Cateran Overlord", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Horror"); + this.subtype.add("Mercenary"); - this.power = new MageInt(7); - this.toughness = new MageInt(5); - - // Sacrifice a creature: Regenerate Cateran Overlord. + this.power = new MageInt(7); + this.toughness = new MageInt(5); + + // Sacrifice a creature: Regenerate Cateran Overlord. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent()))); - // {6}, {T}: Search your library for a Mercenary permanent card with converted mana cost 6 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(6)); - this.addAbility(ability); + + // {6}, {T}: Search your library for a Mercenary permanent card with converted mana cost 6 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(6)); + this.addAbility(ability); } public CateranOverlord(final CateranOverlord card) { @@ -87,5 +88,4 @@ public class CateranOverlord extends CardImpl { public CateranOverlord copy() { return new CateranOverlord(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranPersuader.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranPersuader.java index b656b973ef4..81f0465e42d 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranPersuader.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranPersuader.java @@ -55,22 +55,22 @@ public class CateranPersuader extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2)); } public CateranPersuader(UUID ownerId) { - super(ownerId, 124, "Cateran Persuader", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Mercenary"); + super(ownerId, 124, "Cateran Persuader", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Mercenary"); - this.power = new MageInt(2); - this.toughness = new MageInt(1); - - // {1}, {T}: Search your library for a Mercenary permanent card with converted mana cost 1 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(1)); - this.addAbility(ability); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // {1}, {T}: Search your library for a Mercenary permanent card with converted mana cost 1 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(1)); + this.addAbility(ability); } public CateranPersuader(final CateranPersuader card) { @@ -81,5 +81,4 @@ public class CateranPersuader extends CardImpl { public CateranPersuader copy() { return new CateranPersuader(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranSlaver.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranSlaver.java index 119dc3b3dea..03dda4912b7 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranSlaver.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranSlaver.java @@ -60,19 +60,21 @@ public class CateranSlaver extends CardImpl { } public CateranSlaver(UUID ownerId) { - super(ownerId, 125, "Cateran Slaver", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Horror"); - this.subtype.add("Mercenary"); + super(ownerId, 125, "Cateran Slaver", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Horror"); + this.subtype.add("Mercenary"); - this.power = new MageInt(5); - this.toughness = new MageInt(5); - + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Swampwalk this.addAbility(new SwampwalkAbility()); - // {5}, {T}: Search your library for a Mercenary permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(5)); - this.addAbility(ability); + + // {5}, {T}: Search your library for a Mercenary permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(5)); + this.addAbility(ability); } public CateranSlaver(final CateranSlaver card) { @@ -83,5 +85,4 @@ public class CateranSlaver extends CardImpl { public CateranSlaver copy() { return new CateranSlaver(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/CateranSummons.java b/Mage.Sets/src/mage/sets/mercadianmasques/CateranSummons.java index 4901b5a051a..1b6a46f164d 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/CateranSummons.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/CateranSummons.java @@ -51,11 +51,10 @@ public class CateranSummons extends CardImpl { } public CateranSummons(UUID ownerId) { - super(ownerId, 126, "Cateran Summons", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{B}"); - this.expansionSetCode = "MMQ"; + super(ownerId, 126, "Cateran Summons", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{B}"); + this.expansionSetCode = "MMQ"; - - // Search your library for a Mercenary card, reveal that card, and put it into your hand. Then shuffle your library. + // Search your library for a Mercenary card, reveal that card, and put it into your hand. Then shuffle your library. this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true)); } @@ -67,5 +66,4 @@ public class CateranSummons extends CardImpl { public CateranSummons copy() { return new CateranSummons(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/MoltingHarpy.java b/Mage.Sets/src/mage/sets/mercadianmasques/MoltingHarpy.java index 929918abbbf..28208b49ca3 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/MoltingHarpy.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/MoltingHarpy.java @@ -46,15 +46,17 @@ import mage.cards.CardImpl; public class MoltingHarpy extends CardImpl { public MoltingHarpy(UUID ownerId) { - super(ownerId, 148, "Molting Harpy", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Harpy"); - this.subtype.add("Mercenary"); + super(ownerId, 148, "Molting Harpy", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Harpy"); + this.subtype.add("Mercenary"); - this.power = new MageInt(2); - this.toughness = new MageInt(1); - + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Flying this.addAbility(FlyingAbility.getInstance()); + // At the beginning of your upkeep, sacrifice Molting Harpy unless you pay {2}. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{2}")), TargetController.YOU, false)); } @@ -67,5 +69,4 @@ public class MoltingHarpy extends CardImpl { public MoltingHarpy copy() { return new MoltingHarpy(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/NightwindGlider.java b/Mage.Sets/src/mage/sets/mercadianmasques/NightwindGlider.java index f6b68fece71..df4f083cb57 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/NightwindGlider.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/NightwindGlider.java @@ -45,34 +45,34 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class NightwindGlider extends CardImpl { - private static final FilterCard filter = new FilterCard("Black"); + private static final FilterCard filter = new FilterCard("Black"); - static { - filter.add(new ColorPredicate(ObjectColor.BLACK)); - } + static { + filter.add(new ColorPredicate(ObjectColor.BLACK)); + } - public NightwindGlider(UUID ownerId) { - super(ownerId, 31, "Nightwind Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Rebel"); + public NightwindGlider(UUID ownerId) { + super(ownerId, 31, "Nightwind Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Rebel"); - this.power = new MageInt(2); - this.toughness = new MageInt(1); - - // Flying - this.addAbility(FlyingAbility.getInstance()); - // Protection from black - this.addAbility(new ProtectionAbility(filter)); - } + this.power = new MageInt(2); + this.toughness = new MageInt(1); - public NightwindGlider(final NightwindGlider card) { - super(card); - } + // Flying + this.addAbility(FlyingAbility.getInstance()); - @Override - public NightwindGlider copy() { - return new NightwindGlider(this); - } + // Protection from black + this.addAbility(new ProtectionAbility(filter)); + } + public NightwindGlider(final NightwindGlider card) { + super(card); + } + + @Override + public NightwindGlider copy() { + return new NightwindGlider(this); + } } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/PrimevalShambler.java b/Mage.Sets/src/mage/sets/mercadianmasques/PrimevalShambler.java index c1ac347b8cc..b746fc0c31b 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/PrimevalShambler.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/PrimevalShambler.java @@ -46,16 +46,16 @@ import mage.cards.CardImpl; public class PrimevalShambler extends CardImpl { public PrimevalShambler(UUID ownerId) { - super(ownerId, 152, "Primeval Shambler", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Horror"); - this.subtype.add("Mercenary"); + super(ownerId, 152, "Primeval Shambler", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Horror"); + this.subtype.add("Mercenary"); - this.power = new MageInt(3); - this.toughness = new MageInt(3); - - // {B}: Primeval Shambler gets +1/+1 until end of turn. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}"))); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // {B}: Primeval Shambler gets +1/+1 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}"))); } public PrimevalShambler(final PrimevalShambler card) { @@ -66,5 +66,4 @@ public class PrimevalShambler extends CardImpl { public PrimevalShambler copy() { return new PrimevalShambler(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCaptain.java b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCaptain.java index 741629f9ec8..2e3d8f65870 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCaptain.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCaptain.java @@ -60,21 +60,21 @@ public class RamosianCaptain extends CardImpl { } public RamosianCaptain(UUID ownerId) { - super(ownerId, 35, "Ramosian Captain", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Rebel"); + super(ownerId, 35, "Ramosian Captain", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Rebel"); + + this.power = new MageInt(2); + this.toughness = new MageInt(2); - this.power = new MageInt(2); - this.toughness = new MageInt(2); - // First strike this.addAbility(FirstStrikeAbility.getInstance()); - // {5}, {T}: Search your library for a Rebel permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(5)); - this.addAbility(ability); + // {5}, {T}: Search your library for a Rebel permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(5)); + this.addAbility(ability); } public RamosianCaptain(final RamosianCaptain card) { @@ -85,5 +85,4 @@ public class RamosianCaptain extends CardImpl { public RamosianCaptain copy() { return new RamosianCaptain(this); } - } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCommander.java b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCommander.java index e29870e6b6b..753f406855d 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCommander.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianCommander.java @@ -59,18 +59,18 @@ public class RamosianCommander extends CardImpl { } public RamosianCommander(UUID ownerId) { - super(ownerId, 36, "Ramosian Commander", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Rebel"); + super(ownerId, 36, "Ramosian Commander", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Rebel"); - this.power = new MageInt(2); - this.toughness = new MageInt(4); - - // {6}, {T}: Search your library for a Rebel permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(6)); - this.addAbility(ability); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // {6}, {T}: Search your library for a Rebel permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(6)); + this.addAbility(ability); } public RamosianCommander(final RamosianCommander card) { @@ -81,5 +81,4 @@ public class RamosianCommander extends CardImpl { public RamosianCommander copy() { return new RamosianCommander(this); } - } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianLieutenant.java b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianLieutenant.java index 0efd3821f1c..12bef34ebd4 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianLieutenant.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianLieutenant.java @@ -59,18 +59,18 @@ public class RamosianLieutenant extends CardImpl { } public RamosianLieutenant(UUID ownerId) { - super(ownerId, 37, "Ramosian Lieutenant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Rebel"); + super(ownerId, 37, "Ramosian Lieutenant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Rebel"); - this.power = new MageInt(1); - this.toughness = new MageInt(2); - - // {4}, {T}: Search your library for a Rebel permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(4)); - this.addAbility(ability); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {4}, {T}: Search your library for a Rebel permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(4)); + this.addAbility(ability); } public RamosianLieutenant(final RamosianLieutenant card) { @@ -81,5 +81,4 @@ public class RamosianLieutenant extends CardImpl { public RamosianLieutenant copy() { return new RamosianLieutenant(this); } - } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianSergeant.java b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianSergeant.java index 9185a3db9f0..7908b14ef3a 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/RamosianSergeant.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/RamosianSergeant.java @@ -59,18 +59,18 @@ public class RamosianSergeant extends CardImpl { } public RamosianSergeant(UUID ownerId) { - super(ownerId, 39, "Ramosian Sergeant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Rebel"); + super(ownerId, 39, "Ramosian Sergeant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Rebel"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {3}, {T}: Search your library for a Rebel permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); - ability.addManaCost(new GenericManaCost(3)); - this.addAbility(ability); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {3}, {T}: Search your library for a Rebel permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(3)); + this.addAbility(ability); } public RamosianSergeant(final RamosianSergeant card) { @@ -81,5 +81,4 @@ public class RamosianSergeant extends CardImpl { public RamosianSergeant copy() { return new RamosianSergeant(this); } - } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/RampartCrawler.java b/Mage.Sets/src/mage/sets/mercadianmasques/RampartCrawler.java index 33460f2a9e2..f124d40f11e 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/RampartCrawler.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/RampartCrawler.java @@ -46,21 +46,22 @@ import mage.filter.predicate.mageobject.SubtypePredicate; public class RampartCrawler extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Walls"); + static { filter.add(new SubtypePredicate("Wall")); } public RampartCrawler(UUID ownerId) { - super(ownerId, 156, "Rampart Crawler", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Lizard"); - this.subtype.add("Mercenary"); + super(ownerId, 156, "Rampart Crawler", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Lizard"); + this.subtype.add("Mercenary"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - // Rampart Crawler can't be blocked by Walls. - this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield))); + this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield))); } public RampartCrawler(final RampartCrawler card) { @@ -71,5 +72,4 @@ public class RampartCrawler extends CardImpl { public RampartCrawler copy() { return new RampartCrawler(this); } - } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/SkulkingFugitive.java b/Mage.Sets/src/mage/sets/mercadianmasques/SkulkingFugitive.java index 7c26a07d5ba..983f53b6a1d 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/SkulkingFugitive.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/SkulkingFugitive.java @@ -43,14 +43,14 @@ import mage.cards.CardImpl; public class SkulkingFugitive extends CardImpl { public SkulkingFugitive(UUID ownerId) { - super(ownerId, 161, "Skulking Fugitive", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Horror"); - this.subtype.add("Mercenary"); + super(ownerId, 161, "Skulking Fugitive", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Horror"); + this.subtype.add("Mercenary"); + + this.power = new MageInt(3); + this.toughness = new MageInt(4); - this.power = new MageInt(3); - this.toughness = new MageInt(4); - // When Skulking Fugitive becomes the target of a spell or ability, sacrifice it. this.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect())); } @@ -63,5 +63,4 @@ public class SkulkingFugitive extends CardImpl { public SkulkingFugitive copy() { return new SkulkingFugitive(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/StrongarmThug.java b/Mage.Sets/src/mage/sets/mercadianmasques/StrongarmThug.java index cfc80b06232..c9f63f1ba8f 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/StrongarmThug.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/StrongarmThug.java @@ -53,16 +53,16 @@ public class StrongarmThug extends CardImpl { } public StrongarmThug(UUID ownerId) { - super(ownerId, 165, "Strongarm Thug", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Mercenary"); + super(ownerId, 165, "Strongarm Thug", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Mercenary"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - // When Strongarm Thug enters the battlefield, you may return target Mercenary card from your graveyard to your hand. - Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); ability.addTarget(new TargetCardInYourGraveyard(filter)); this.addAbility(ability); } @@ -75,5 +75,4 @@ public class StrongarmThug extends CardImpl { public StrongarmThug copy() { return new StrongarmThug(this); } - -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/ThermalGlider.java b/Mage.Sets/src/mage/sets/mercadianmasques/ThermalGlider.java index a7c541729f1..5308868de4d 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/ThermalGlider.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/ThermalGlider.java @@ -45,34 +45,34 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class ThermalGlider extends CardImpl { - private static final FilterCard filter = new FilterCard("Red"); + private static final FilterCard filter = new FilterCard("Red"); - static { - filter.add(new ColorPredicate(ObjectColor.RED)); - } + static { + filter.add(new ColorPredicate(ObjectColor.RED)); + } - public ThermalGlider(UUID ownerId) { - super(ownerId, 53, "Thermal Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); - this.expansionSetCode = "MMQ"; - this.subtype.add("Human"); - this.subtype.add("Rebel"); + public ThermalGlider(UUID ownerId) { + super(ownerId, 53, "Thermal Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); + this.expansionSetCode = "MMQ"; + this.subtype.add("Human"); + this.subtype.add("Rebel"); - this.power = new MageInt(2); - this.toughness = new MageInt(1); - - // Flying - this.addAbility(FlyingAbility.getInstance()); - // Protection from red - this.addAbility(new ProtectionAbility(filter)); - } + this.power = new MageInt(2); + this.toughness = new MageInt(1); - public ThermalGlider(final ThermalGlider card) { - super(card); - } + // Flying + this.addAbility(FlyingAbility.getInstance()); - @Override - public ThermalGlider copy() { - return new ThermalGlider(this); - } + // Protection from red + this.addAbility(new ProtectionAbility(filter)); + } + public ThermalGlider(final ThermalGlider card) { + super(card); + } + + @Override + public ThermalGlider copy() { + return new ThermalGlider(this); + } } diff --git a/Mage.Sets/src/mage/sets/nemesis/StampedeDriver.java b/Mage.Sets/src/mage/sets/nemesis/StampedeDriver.java index 3056ad72299..eb720527bb3 100644 --- a/Mage.Sets/src/mage/sets/nemesis/StampedeDriver.java +++ b/Mage.Sets/src/mage/sets/nemesis/StampedeDriver.java @@ -52,18 +52,18 @@ import mage.target.common.TargetCardInHand; public class StampedeDriver extends CardImpl { public StampedeDriver(UUID ownerId) { - super(ownerId, 122, "Stampede Driver", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{G}"); - this.expansionSetCode = "NMS"; - this.subtype.add("Human"); - this.subtype.add("Spellshaper"); + super(ownerId, 122, "Stampede Driver", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetCode = "NMS"; + this.subtype.add("Human"); + this.subtype.add("Spellshaper"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {1}{G}, {T}, Discard a card: Creatures you control get +1/+1 and gain trample until end of turn. + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {1}{G}, {T}, Discard a card: Creatures you control get +1/+1 and gain trample until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{G}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new DiscardTargetCost(new TargetCardInHand())); + ability.addCost(new TapSourceCost()); + ability.addCost(new DiscardTargetCost(new TargetCardInHand())); ability.addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent())); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/planarchaos/HeroesRemembered.java b/Mage.Sets/src/mage/sets/planarchaos/HeroesRemembered.java index 54d15e377e2..341acb873b2 100644 --- a/Mage.Sets/src/mage/sets/planarchaos/HeroesRemembered.java +++ b/Mage.Sets/src/mage/sets/planarchaos/HeroesRemembered.java @@ -9,25 +9,24 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; -public class HeroesRemembered extends CardImpl{ +public class HeroesRemembered extends CardImpl { - public HeroesRemembered(UUID ownerId){ - super(ownerId, 7, "Heroes Remembered", Rarity.RARE, new CardType[] {CardType.SORCERY}, "{6}{W}{W}{W}"); - this.expansionSetCode = "PLC"; - - //You gain 20 life. - this.getSpellAbility().addEffect(new GainLifeEffect(20)); - //Suspend 10-{W} - this.addAbility(new SuspendAbility(10, new ManaCostsImpl("{W}"), this)); - } - - public HeroesRemembered(final HeroesRemembered card) { - super(card); - } + public HeroesRemembered(UUID ownerId){ + super(ownerId, 7, "Heroes Remembered", Rarity.RARE, new CardType[] {CardType.SORCERY}, "{6}{W}{W}{W}"); + this.expansionSetCode = "PLC"; - @Override - public Card copy() { - return new HeroesRemembered(this); - } + //You gain 20 life. + this.getSpellAbility().addEffect(new GainLifeEffect(20)); + //Suspend 10-{W} + this.addAbility(new SuspendAbility(10, new ManaCostsImpl("{W}"), this)); + } + public HeroesRemembered(final HeroesRemembered card) { + super(card); + } + + @Override + public Card copy() { + return new HeroesRemembered(this); + } } diff --git a/Mage.Sets/src/mage/sets/planechase2012/IllusoryAngel.java b/Mage.Sets/src/mage/sets/planechase2012/IllusoryAngel.java index df3483455f5..5284bab959b 100644 --- a/Mage.Sets/src/mage/sets/planechase2012/IllusoryAngel.java +++ b/Mage.Sets/src/mage/sets/planechase2012/IllusoryAngel.java @@ -44,26 +44,26 @@ import mage.constants.Zone; public class IllusoryAngel extends CardImpl { public IllusoryAngel(UUID ownerId) { - super(ownerId, 19, "Illusory Angel", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{U}"); - this.expansionSetCode = "PC2"; - this.subtype.add("Angel"); - this.subtype.add("Illusion"); - this.power = new MageInt(4); - this.toughness = new MageInt(4); + super(ownerId, 19, "Illusory Angel", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{U}"); + this.expansionSetCode = "PC2"; + this.subtype.add("Angel"); + this.subtype.add("Illusion"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); - // Flying - this.addAbility(FlyingAbility.getInstance()); + // Flying + this.addAbility(FlyingAbility.getInstance()); - // Cast Illusory Angel only if you've cast another spell this turn. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new CastOnlyIfYouHaveCastAnotherSpellEffect())); + // Cast Illusory Angel only if you've cast another spell this turn. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new CastOnlyIfYouHaveCastAnotherSpellEffect())); } public IllusoryAngel(final IllusoryAngel card) { - super(card); + super(card); } @Override public IllusoryAngel copy() { - return new IllusoryAngel(this); + return new IllusoryAngel(this); } } diff --git a/Mage.Sets/src/mage/sets/planechase2012/ShardlessAgent.java b/Mage.Sets/src/mage/sets/planechase2012/ShardlessAgent.java index 07413bc3a08..46528a043fa 100644 --- a/Mage.Sets/src/mage/sets/planechase2012/ShardlessAgent.java +++ b/Mage.Sets/src/mage/sets/planechase2012/ShardlessAgent.java @@ -41,26 +41,24 @@ import mage.cards.CardImpl; public class ShardlessAgent extends CardImpl { public ShardlessAgent(UUID ownerId) { - super(ownerId, 104, "Shardless Agent", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT,CardType.CREATURE}, "{1}{G}{U}"); - this.expansionSetCode = "PC2"; - this.subtype.add("Human"); - this.subtype.add("Rogue"); + super(ownerId, 104, "Shardless Agent", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT,CardType.CREATURE}, "{1}{G}{U}"); + this.expansionSetCode = "PC2"; + this.subtype.add("Human"); + this.subtype.add("Rogue"); - this.power = new MageInt(2); - this.toughness = new MageInt(2); - - // Cascade - this.addAbility(new CascadeAbility()); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + // Cascade + this.addAbility(new CascadeAbility()); } public ShardlessAgent(final ShardlessAgent card) { - super(card); + super(card); } @Override public ShardlessAgent copy() { - return new ShardlessAgent(this); + return new ShardlessAgent(this); } } - diff --git a/Mage.Sets/src/mage/sets/ravnica/Overwhelm.java b/Mage.Sets/src/mage/sets/ravnica/Overwhelm.java index 9aeee864ba6..c7ec2eb4565 100644 --- a/Mage.Sets/src/mage/sets/ravnica/Overwhelm.java +++ b/Mage.Sets/src/mage/sets/ravnica/Overwhelm.java @@ -42,24 +42,22 @@ import mage.cards.CardImpl; public class Overwhelm extends CardImpl { public Overwhelm(UUID ownerId) { - super(ownerId, 175, "Overwhelm", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{5}{G}{G}"); - this.expansionSetCode = "RAV"; - + super(ownerId, 175, "Overwhelm", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{5}{G}{G}"); + this.expansionSetCode = "RAV"; - // Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.) - this.addAbility(new ConvokeAbility()); + // Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.) + this.addAbility(new ConvokeAbility()); - // Creatures you control get +3/+3 until end of turn. - this.getSpellAbility().addEffect(new BoostControlledEffect(3, 3, Duration.EndOfTurn)); + // Creatures you control get +3/+3 until end of turn. + this.getSpellAbility().addEffect(new BoostControlledEffect(3, 3, Duration.EndOfTurn)); } public Overwhelm(final Overwhelm card) { - super(card); + super(card); } @Override public Overwhelm copy() { - return new Overwhelm(this); + return new Overwhelm(this); } } - diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/InnerCalmOuterStrength.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/InnerCalmOuterStrength.java index 9a7a5395e7c..c25f9d3b189 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/InnerCalmOuterStrength.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/InnerCalmOuterStrength.java @@ -45,11 +45,10 @@ import mage.target.common.TargetCreaturePermanent; public class InnerCalmOuterStrength extends CardImpl { public InnerCalmOuterStrength(UUID ownerId) { - super(ownerId, 133, "Inner Calm, Outer Strength", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}"); + super(ownerId, 133, "Inner Calm, Outer Strength", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}"); this.expansionSetCode = "SOK"; this.subtype.add("Arcane"); - // Target creature gets +X/+X until end of turn, where X is the number of cards in your hand. DynamicValue xValue= new CardsInControllerHandCount(); Effect effect = new BoostTargetEffect(xValue, xValue, Duration.EndOfTurn, true); diff --git a/Mage.Sets/src/mage/sets/tempest/CrownOfFlames.java b/Mage.Sets/src/mage/sets/tempest/CrownOfFlames.java index d9954cd8968..f3f1a55e136 100644 --- a/Mage.Sets/src/mage/sets/tempest/CrownOfFlames.java +++ b/Mage.Sets/src/mage/sets/tempest/CrownOfFlames.java @@ -48,10 +48,9 @@ import mage.target.common.TargetCreaturePermanent; public class CrownOfFlames extends CardImpl { public CrownOfFlames(UUID ownerId) { - super(ownerId, 169, "Crown of Flames", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{R}"); + super(ownerId, 169, "Crown of Flames", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{R}"); this.expansionSetCode = "TMP"; this.subtype.add("Aura"); - // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); diff --git a/Mage.Sets/src/mage/sets/tenthedition/Condemn.java b/Mage.Sets/src/mage/sets/tenthedition/Condemn.java index 3b2faf0c018..6327f610840 100644 --- a/Mage.Sets/src/mage/sets/tenthedition/Condemn.java +++ b/Mage.Sets/src/mage/sets/tenthedition/Condemn.java @@ -49,15 +49,15 @@ import mage.target.common.TargetAttackingCreature; public class Condemn extends CardImpl { public Condemn(UUID ownerId) { - super(ownerId, 13, "Condemn", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{W}"); + super(ownerId, 13, "Condemn", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{W}"); this.expansionSetCode = "10E"; // Put target attacking creature on the bottom of its owner's library. this.getSpellAbility().addTarget(new TargetAttackingCreature()); this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false)); + // Its controller gains life equal to its toughness. this.getSpellAbility().addEffect(new CondemnEffect()); - } public Condemn(final Condemn card) { @@ -68,7 +68,6 @@ public class Condemn extends CardImpl { public Condemn copy() { return new Condemn(this); } - } class CondemnEffect extends OneShotEffect { @@ -99,5 +98,4 @@ class CondemnEffect extends OneShotEffect { } return false; } - } diff --git a/Mage.Sets/src/mage/sets/theros/TriadOfFates.java b/Mage.Sets/src/mage/sets/theros/TriadOfFates.java index 4d623f712b9..7db474bf487 100644 --- a/Mage.Sets/src/mage/sets/theros/TriadOfFates.java +++ b/Mage.Sets/src/mage/sets/theros/TriadOfFates.java @@ -61,13 +61,14 @@ public class TriadOfFates extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); private static final FilterCreaturePermanent filterCounter = new FilterCreaturePermanent("creature that has a fate counter on it"); + static { filter.add(new AnotherPredicate()); filterCounter.add(new CounterPredicate(CounterType.FATE)); } public TriadOfFates(UUID ownerId) { - super(ownerId, 206, "Triad of Fates", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{W}{B}"); + super(ownerId, 206, "Triad of Fates", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{W}{B}"); this.expansionSetCode = "THS"; this.supertype.add("Legendary"); this.subtype.add("Human"); @@ -82,6 +83,7 @@ public class TriadOfFates extends CardImpl { Target target = new TargetCreaturePermanent(filter); ability.addTarget(target); this.addAbility(ability); + // {W}, {T}: Exile target creature that has a fate counter on it, then return it to the battlefield under its owner's control. ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new ManaCostsImpl("{W}")); ability.addCost(new TapSourceCost()); @@ -89,6 +91,7 @@ public class TriadOfFates extends CardImpl { ability.addTarget(target); ability.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect()); this.addAbility(ability); + // {B}, {T}: Exile target creature that has a fate counter on it. Its controller draws two cards. ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{B}")); ability.addCost(new TapSourceCost()); @@ -96,7 +99,6 @@ public class TriadOfFates extends CardImpl { ability.addTarget(target); ability.addEffect(new DrawCardControllerTargetEffect()); this.addAbility(ability); - } public TriadOfFates(final TriadOfFates card) {