diff --git a/Mage.Sets/src/mage/sets/Magic2010.java b/Mage.Sets/src/mage/sets/Magic2010.java index 32e5a52d0e..bc14b0c873 100644 --- a/Mage.Sets/src/mage/sets/Magic2010.java +++ b/Mage.Sets/src/mage/sets/Magic2010.java @@ -45,25 +45,54 @@ public class Magic2010 extends ExpansionSet { private Magic2010() { this.name = "Magic 2010"; + this.cards.add(AcidicSlime.class); + this.cards.add(AcolyteOfXathrid.class); + this.cards.add(ActOfTreason.class); + this.cards.add(AirElemental.class); + this.cards.add(AjaniGoldmane.class); + this.cards.add(AlluringSiren.class); + this.cards.add(AngelsFeather.class); + this.cards.add(AngelsMercy.class); + this.cards.add(AntQueen.class); + this.cards.add(ArmoredAscension.class); + this.cards.add(Assassinate.class); + this.cards.add(AwakenerDruid.class); this.cards.add(BallLightning.class); this.cards.add(BaneslayerAngel.class); this.cards.add(BirdsOfParadise.class); + this.cards.add(BerserkersOfBloodRidge.class); + this.cards.add(BlackKnight.class); + this.cards.add(BlindingMage.class); + this.cards.add(BogWraith.class); + this.cards.add(BogardanHellkite.class); this.cards.add(Cancel.class); this.cards.add(CelestialPurge.class); + this.cards.add(DiabolicTutor.class); + this.cards.add(DoomBlade.class); this.cards.add(DragonskullSummit.class); this.cards.add(Earthquake.class); this.cards.add(EliteVanguard.class); this.cards.add(Flashfreeze.class); this.cards.add(GargoyleCastle.class); this.cards.add(GarrukWildspeaker.class); + this.cards.add(GiantGrowth.class); this.cards.add(GlacialFortress.class); this.cards.add(GreatSableStag.class); this.cards.add(HonorOfThePure.class); this.cards.add(HowlingMine.class); this.cards.add(JaceBeleren.class); + this.cards.add(LlanowarElves.class); this.cards.add(LightningBolt.class); this.cards.add(MasterOfTheWildHunt.class); + this.cards.add(MightOfOaks.class); + this.cards.add(MindRot.class); + this.cards.add(Naturalize.class); + this.cards.add(Overrun.class); + this.cards.add(RampantGrowth.class); + this.cards.add(MindSpring.class); + this.cards.add(Negate.class); this.cards.add(RootboundCrag.class); + this.cards.add(RoyalAssassin.class); this.cards.add(SafePassage.class); this.cards.add(SunpetalGrove.class); this.cards.add(TerramorphicExpanse.class); diff --git a/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java b/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java index 4351f35aaf..f0bebd7d8d 100644 --- a/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java +++ b/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java @@ -45,7 +45,10 @@ public class RiseOfTheEldrazi extends ExpansionSet { private RiseOfTheEldrazi() { this.name = "Rise Of The Eldrazi"; + this.cards.add(Deprive.class); + this.cards.add(GideonJura.class); this.cards.add(KarganDragonlord.class); + this.cards.add(WallOfOmens.class); } } diff --git a/Mage.Sets/src/mage/sets/Worldwake.java b/Mage.Sets/src/mage/sets/Worldwake.java index 3dbdd93c45..0e6e5264f3 100644 --- a/Mage.Sets/src/mage/sets/Worldwake.java +++ b/Mage.Sets/src/mage/sets/Worldwake.java @@ -47,6 +47,8 @@ public class Worldwake extends ExpansionSet { this.name = "Worldwake"; this.cards.add(BasiliskCollar.class); this.cards.add(CelestialColonnade.class); + this.cards.add(EverflowingChalice.class); + this.cards.add(JaceTheMindSculptor.class); this.cards.add(LavaclawReaches.class); this.cards.add(RagingRavine.class); this.cards.add(SearingBlaze.class); diff --git a/Mage.Sets/src/mage/sets/Zendikar.java b/Mage.Sets/src/mage/sets/Zendikar.java index f630af2485..48e848ec47 100644 --- a/Mage.Sets/src/mage/sets/Zendikar.java +++ b/Mage.Sets/src/mage/sets/Zendikar.java @@ -62,6 +62,7 @@ public class Zendikar extends ExpansionSet { this.cards.add(RampagingBaloths.class); this.cards.add(ScaldingTarn.class); this.cards.add(ScuteMob.class); + this.cards.add(SpreadingSeas.class); this.cards.add(SteppeLynx.class); this.cards.add(SunspringExpedition.class); this.cards.add(TeeteringPeaks.class); diff --git a/Mage.Sets/src/mage/sets/alarareborn/BehemothSledge.java b/Mage.Sets/src/mage/sets/alarareborn/BehemothSledge.java index 2cf3a1db7d..4efeb2096f 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/BehemothSledge.java +++ b/Mage.Sets/src/mage/sets/alarareborn/BehemothSledge.java @@ -35,7 +35,7 @@ import mage.Constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.BoostEquippedEffect; -import mage.abilities.effects.common.GainAbilityEquippedEffect; +import mage.abilities.effects.common.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.TrampleAbility; @@ -54,8 +54,8 @@ public class BehemothSledge extends CardImpl { this.art = "120963_typ_reg_sty_010.jpg"; this.subtype.add("Equipment"); this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityEquippedEffect(LifelinkAbility.getInstance()))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityEquippedEffect(TrampleAbility.getInstance()))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(LifelinkAbility.getInstance()))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(TrampleAbility.getInstance()))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); } diff --git a/Mage.Sets/src/mage/sets/alarareborn/FinestHour.java b/Mage.Sets/src/mage/sets/alarareborn/FinestHour.java index 09c6245c4c..bb1a635e03 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/FinestHour.java +++ b/Mage.Sets/src/mage/sets/alarareborn/FinestHour.java @@ -75,7 +75,7 @@ class FinestHourAbility extends TriggeredAbilityImpl { if (checkIfClause(game) && game.getActivePlayerId().equals(this.controllerId)) { if (event.getType() == EventType.DECLARED_ATTACKERS) { if (game.getCombat().attacksAlone()) { - this.targets.add(new TargetCreaturePermanent()); + this.addTarget(new TargetCreaturePermanent()); this.targets.get(0).getTargets().add(game.getCombat().getAttackers().get(0)); trigger(game, event.getPlayerId()); return true; @@ -108,7 +108,7 @@ class FinestHourEffect extends OneShotEffect { Permanent permanent = game.getPermanent(this.source.getFirstTarget()); if (permanent != null) { permanent.setTapped(false); - game.getState().getTurnMods().add(new TurnMod(this.source.getControllerId(), TurnPhase.COMBAT, null)); + game.getState().getTurnMods().add(new TurnMod(this.source.getControllerId(), TurnPhase.COMBAT, null, false)); } else { return false; diff --git a/Mage.Sets/src/mage/sets/conflux/FontOfMythos.java b/Mage.Sets/src/mage/sets/conflux/FontOfMythos.java index 6942b6a90d..0203dfe57f 100644 --- a/Mage.Sets/src/mage/sets/conflux/FontOfMythos.java +++ b/Mage.Sets/src/mage/sets/conflux/FontOfMythos.java @@ -64,7 +64,7 @@ class FontOfMythosAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == EventType.DRAW_STEP_PRE) { - this.targets.add(new TargetPlayer()); + this.addTarget(new TargetPlayer()); this.targets.get(0).getTargets().add(event.getPlayerId()); trigger(game, event.getPlayerId()); return true; diff --git a/Mage.Sets/src/mage/sets/conflux/KnightOfTheReliquary.java b/Mage.Sets/src/mage/sets/conflux/KnightOfTheReliquary.java index 0dceeaa115..37f1d475b7 100644 --- a/Mage.Sets/src/mage/sets/conflux/KnightOfTheReliquary.java +++ b/Mage.Sets/src/mage/sets/conflux/KnightOfTheReliquary.java @@ -34,7 +34,6 @@ import mage.Constants.Duration; import mage.Constants.Layer; import mage.Constants.Outcome; import mage.Constants.SubLayer; -import mage.Constants.TargetController; import mage.Constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; @@ -53,8 +52,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.sets.Conflux; import mage.target.common.TargetCardInLibrary; -import mage.target.common.TargetLandPermanent; -import mage.target.common.TargetSacrificePermanent; +import mage.target.common.TargetControlledPermanent; /** * @@ -83,7 +81,7 @@ public class KnightOfTheReliquary extends CardImpl { TargetCardInLibrary target = new TargetCardInLibrary(new FilterLandCard()); Costs costs = new CostsImpl(); costs.add(new TapSourceCost()); - costs.add(new SacrificeTargetCost(new TargetSacrificePermanent(1, 1, filter))); + costs.add(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, filter))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new KnightOfTheReliquaryEffect())); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay), costs)); } diff --git a/Mage.Sets/src/mage/sets/magic2010/AcidicSlime.java b/Mage.Sets/src/mage/sets/magic2010/AcidicSlime.java new file mode 100644 index 0000000000..104403c097 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AcidicSlime.java @@ -0,0 +1,78 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.TargetController; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.cards.CardImpl; +import mage.filter.Filter.ComparisonScope; +import mage.filter.FilterPermanent; +import mage.sets.Magic2010; +import mage.target.Target; +import mage.target.TargetPermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AcidicSlime extends CardImpl { + + private static FilterPermanent filter = new FilterPermanent("artifact, enchantment, or land"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.getCardType().add(CardType.ENCHANTMENT); + filter.getCardType().add(CardType.LAND); + filter.setScopeCardType(ComparisonScope.Any); + } + + public AcidicSlime(UUID ownerId) { + super(ownerId, "Acidic Slime", new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Ooze"); + this.color.setGreen(true); + this.art = "121561_typ_reg_sty_010.jpg"; + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + this.addAbility(DeathtouchAbility.getInstance()); + Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); + Target target = new TargetPermanent(filter, TargetController.ANY); + target.setRequired(true); + ability.addTarget(target); + this.addAbility(ability); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java b/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java new file mode 100644 index 0000000000..baaded23c1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java @@ -0,0 +1,65 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCosts; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.TargetPlayer; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AcolyteOfXathrid extends CardImpl { + + public AcolyteOfXathrid(UUID ownerId) { + super(ownerId, "Acolyte Of Xathrid", new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.color.setBlack(true); + this.art = "121644_typ_reg_sty_010.jpg"; + this.power = new MageInt(0); + this.toughness = new MageInt(1); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCosts("{1}{B}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetPlayer()); + this.addAbility(ability); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java b/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java new file mode 100644 index 0000000000..5a2b81361e --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java @@ -0,0 +1,60 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.abilities.effects.common.GainAbilityTargetEffect; +import mage.abilities.effects.common.GainControlTargetEOTEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class ActOfTreason extends CardImpl { + + public ActOfTreason(UUID ownerId) { + super(ownerId, "Act Of Treason", new CardType[]{CardType.SORCERY}, "{2}{R}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setRed(true); + this.art = "121664_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new GainControlTargetEOTEffect()); + this.getSpellAbility().addEffect(new UntapTargetEffect()); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)); + + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/AirElemental.java b/Mage.Sets/src/mage/sets/magic2010/AirElemental.java new file mode 100644 index 0000000000..4f73932cf0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AirElemental.java @@ -0,0 +1,55 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AirElemental extends CardImpl { + + public AirElemental(UUID ownerId) { + super(ownerId, "Air Elemental", new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlue(true); + this.subtype.add("Elemental"); + this.art = "101044_typ_reg_sty_010.jpg"; + this.power = new MageInt(4); + this.toughness = new MageInt(4); + this.addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/AjaniGoldmane.java b/Mage.Sets/src/mage/sets/magic2010/AjaniGoldmane.java new file mode 100644 index 0000000000..dffdb4b63c --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AjaniGoldmane.java @@ -0,0 +1,115 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Layer; +import mage.Constants.Outcome; +import mage.Constants.SubLayer; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.Effects; +import mage.abilities.effects.common.AddPlusOneCountersControlledEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.GainAbilityControlledEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.Token; +import mage.players.Player; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AjaniGoldmane extends CardImpl { + + public AjaniGoldmane(UUID ownerId) { + super(ownerId, "Ajani Goldmane", new CardType[]{CardType.PLANESWALKER}, "{2}{W}{W}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Ajani"); + this.color.setWhite(true); + this.art = "105545_typ_reg_sty_010.jpg"; + this.loyalty = new MageInt(4); + + this.addAbility(new LoyaltyAbility(new GainLifeEffect(2), 1)); + + Effects effects1 = new Effects(null); + effects1.add(new AddPlusOneCountersControlledEffect(1)); + effects1.add(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent())); + this.addAbility(new LoyaltyAbility(effects1, -1)); + + this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new AvatarToken()), -6)); + + } + +} + +class AvatarToken extends Token { + + public AvatarToken() { + super("Avatar", "white Avatar creature token with \"This creature's power and toughness are each equal to your life total.\""); + cardType.add(CardType.CREATURE); + subtype.add("Avatar"); + color.setWhite(true); + this.abilities.add(new SimpleStaticAbility(Zone.BATTLEFIELD, new AvatarTokenEffect())); + } + +} + +class AvatarTokenEffect extends ContinuousEffectImpl { + + public AvatarTokenEffect() { + super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); + } + + @Override + public boolean apply(Game game) { + Permanent token = game.getPermanent(this.source.getSourceId()); + if (token != null) { + Player controller = game.getPlayer(this.source.getControllerId()); + if (controller != null) { + token.getPower().setValue(controller.getLife()); + token.getToughness().setValue(controller.getLife()); + return true; + } + } + return false; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/magic2010/AlluringSiren.java b/Mage.Sets/src/mage/sets/magic2010/AlluringSiren.java new file mode 100644 index 0000000000..f520e05d51 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AlluringSiren.java @@ -0,0 +1,102 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.TargetController; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.RequirementAttackEffect; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AlluringSiren extends CardImpl { + + public AlluringSiren(UUID ownerId) { + super(ownerId, "Alluring Siren", new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlue(true); + this.subtype.add("Siren"); + this.art = "121568_typ_reg_sty_010.jpg"; + this.power = new MageInt(1); + this.toughness = new MageInt(1); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AlluringSirenEffect(), new TapSourceCost()); + TargetCreaturePermanent target = new TargetCreaturePermanent(); + target.setTargetController(TargetController.OPPONENT); + ability.addTarget(target); + this.addAbility(ability); + } + +} + +class AlluringSirenEffect extends RequirementAttackEffect { + + public AlluringSirenEffect() { + super(Duration.OneUse); + } + + @Override + public boolean applies(GameEvent event, Game game) { + if (event.getType().equals(EventType.DECLARE_ATTACKERS_STEP_PRE) && event.getPlayerId().equals(this.source.getFirstTarget())) + return true; + if (event.getType().equals(EventType.END_PHASE_POST) && event.getPlayerId().equals(this.source.getFirstTarget())) + used = true; + return false; + } + + @Override + public boolean apply(Game game) { + Permanent creature = game.getPermanent(this.source.getFirstTarget()); + if (creature != null) { + if (creature.canAttack(game)) { + game.getCombat().declareAttacker(creature.getId(), this.source.getControllerId(), game); + } + } + return false; + } + + @Override + public String getText() { + return "Target creature an opponent controls attacks you this turn if able."; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java b/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java new file mode 100644 index 0000000000..17682b4f8e --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AngelsFeather.java @@ -0,0 +1,81 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Zone; +import mage.MageObject; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AngelsFeather extends CardImpl { + + public AngelsFeather(UUID ownerId) { + super(ownerId, "Angel's Feather", new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.art = "75223_typ_reg_sty_010.jpg"; + this.addAbility(new AngelsFeatherAbility()); + } + +} + +class AngelsFeatherAbility extends TriggeredAbilityImpl { + + public AngelsFeatherAbility() { + super(Zone.BATTLEFIELD, new GainLifeEffect(1), true); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == EventType.SPELL_CAST) { + MageObject spell = game.getObject(event.getTargetId()); + if (spell != null && spell.getColor().isWhite()) { + trigger(game, event.getPlayerId()); + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever a player casts a white spell, you may gain 1 life."; + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/AngelsMercy.java b/Mage.Sets/src/mage/sets/magic2010/AngelsMercy.java new file mode 100644 index 0000000000..857953c3d4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AngelsMercy.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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AngelsMercy extends CardImpl { + + public AngelsMercy(UUID ownerId) { + super(ownerId, "Angel's Mercy", new CardType[]{CardType.INSTANT}, "{2}{W}{W}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setWhite(true); + this.art = "121628_typ_reg_sty_010.jpg"; + this.getSpellAbility().addEffect(new GainLifeEffect(7)); + } + + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/AntQueen.java b/Mage.Sets/src/mage/sets/magic2010/AntQueen.java new file mode 100644 index 0000000000..e13cfbda3f --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AntQueen.java @@ -0,0 +1,63 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCost; +import mage.abilities.costs.mana.ManaCosts; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.cards.CardImpl; +import mage.game.permanent.token.InsectToken; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AntQueen extends CardImpl { + + private static InsectToken insectToken = new InsectToken(); + + public AntQueen(UUID ownerId) { + super(ownerId, "Ant Queen", new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Insect"); + this.color.setGreen(true); + this.art = "122179_typ_reg_sty_010.jpg"; + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(insectToken), new ManaCosts("{1}{G}"))); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/ArmoredAscension.java b/Mage.Sets/src/mage/sets/magic2010/ArmoredAscension.java new file mode 100644 index 0000000000..6a38641e9b --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/ArmoredAscension.java @@ -0,0 +1,128 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Layer; +import mage.Constants.Outcome; +import mage.Constants.SubLayer; +import mage.Constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterLandPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.sets.Magic2010; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class ArmoredAscension extends CardImpl { + + public ArmoredAscension(UUID ownerId) { + super(ownerId, "Armored Ascension", new CardType[]{CardType.ENCHANTMENT}, "{3}{W}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setWhite(true); + this.art = "122162_typ_reg_sty_010.jpg"; + this.subtype.add("Aura"); + + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(Outcome.BoostCreature, auraTarget); + this.addAbility(ability); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ArmoredAscensionEffect())); + + } +} + +class ArmoredAscensionEffect extends ContinuousEffectImpl { + + private static FilterLandPermanent filter = new FilterLandPermanent("Plains"); + + static { + filter.getSubtype().add("Plains"); + } + + public ArmoredAscensionEffect() { + super(Duration.WhileOnBattlefield, Outcome.BoostCreature); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Game game) { + Permanent enchantment = game.getPermanent(this.source.getSourceId()); + if (enchantment.getAttachedTo() != null) { + Permanent creature = game.getPermanent(enchantment.getAttachedTo()); + if (creature != null) { + switch (layer) { + case PTChangingEffects_7: + if (sublayer == SubLayer.ModifyPT_7c) { + int amount = game.getBattlefield().countAll(filter, this.source.getControllerId()); + creature.addPower(amount); + creature.addToughness(amount); + } + break; + case AbilityAddingRemovingEffects_6: + if (sublayer == SubLayer.NA) { + creature.addAbility(FlyingAbility.getInstance()); + } + break; + } + return true; + } + } + return false; + } + + @Override + public boolean apply(Game game) { + return false; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.AbilityAddingRemovingEffects_6 || layer == layer.PTChangingEffects_7; + } + + @Override + public String getText() { + return "Enchanted creature gets +1/+1 for each Plains you control and has flying."; + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/Assassinate.java b/Mage.Sets/src/mage/sets/magic2010/Assassinate.java new file mode 100644 index 0000000000..f78494591a --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/Assassinate.java @@ -0,0 +1,63 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.TargetController; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreaturePermanent; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class Assassinate extends CardImpl { + + private static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + + static { + filter.setTapped(true); + filter.setUseTapped(true); + } + + public Assassinate(UUID ownerId) { + super(ownerId, "Assassinate", new CardType[]{CardType.SORCERY}, "{2}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlack(true); + this.art = "97461_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, 1, filter, TargetController.ANY)); + this.getSpellAbility().addEffect(new DestroyTargetEffect()); + + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/AwakenerDruid.java b/Mage.Sets/src/mage/sets/magic2010/AwakenerDruid.java new file mode 100644 index 0000000000..0a0a39c471 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/AwakenerDruid.java @@ -0,0 +1,144 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Layer; +import mage.Constants.Outcome; +import mage.Constants.SubLayer; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.cards.CardImpl; +import mage.filter.common.FilterLandPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.Token; +import mage.sets.Magic2010; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class AwakenerDruid extends CardImpl { + + private static FilterLandPermanent filter = new FilterLandPermanent("Forest"); + + static { + filter.getSubtype().add("Forest"); + } + + public AwakenerDruid(UUID ownerId) { + super(ownerId, "Awakener Druid", new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setGreen(true); + this.subtype.add("Human"); + this.subtype.add("Druid"); + this.art = "121576_typ_reg_sty_010.jpg"; + this.power = new MageInt(1); + this.toughness = new MageInt(1); + Ability ability = new EntersBattlefieldTriggeredAbility(new AwakenerDruidEffect(), false); + ability.addTarget(new TargetLandPermanent(filter)); + this.addAbility(ability); + } + +} + +class AwakenerDruidEffect extends ContinuousEffectImpl { + + protected static AwakenerDruidToken token = new AwakenerDruidToken(); + + public AwakenerDruidEffect() { + super(Duration.WhileOnBattlefield, Outcome.BecomeCreature); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Game game) { + Permanent permanent = game.getPermanent(this.source.getFirstTarget()); + if (permanent != null) { + switch (layer) { + case TypeChangingEffects_4: + if (sublayer == SubLayer.NA) { + if (token.getCardType().size() > 0) + permanent.getCardType().addAll(token.getCardType()); + if (token.getSubtype().size() > 0) + permanent.getSubtype().addAll(token.getSubtype()); + } + break; + case ColorChangingEffects_5: + if (sublayer == SubLayer.NA) { + if (token.getColor().hasColor()) + permanent.getColor().setColor(token.getColor()); + } + break; + case PTChangingEffects_7: + if (sublayer == SubLayer.SetPT_7b) { + if (token.getPower() != MageInt.EmptyMageInt) + permanent.getPower().setValue(token.getPower().getValue()); + if (token.getToughness() != MageInt.EmptyMageInt) + permanent.getToughness().setValue(token.getToughness().getValue()); + } + } + } + return true; + } + + @Override + public boolean apply(Game game) { + return false; + } + + @Override + public String getText() { + return "target Forest becomes a 4/5 green Treefolk creature for as long as {this} is on the battlefield. It's still a land."; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.PTChangingEffects_7 || layer == Layer.ColorChangingEffects_5 || layer == layer.TypeChangingEffects_4; + } + +} + +class AwakenerDruidToken extends Token { + + public AwakenerDruidToken() { + super("", "4/5 green Treefolk creature"); + cardType.add(CardType.CREATURE); + subtype.add("Treefolk"); + color.setGreen(true); + power = new MageInt(4); + toughness = new MageInt(5); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/magic2010/BerserkersOfBloodRidge.java b/Mage.Sets/src/mage/sets/magic2010/BerserkersOfBloodRidge.java new file mode 100644 index 0000000000..7d3cbcd349 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/BerserkersOfBloodRidge.java @@ -0,0 +1,56 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.common.AttacksEachTurnStaticAbility; +import mage.cards.CardImpl; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class BerserkersOfBloodRidge extends CardImpl { + + public BerserkersOfBloodRidge(UUID ownerId) { + super(ownerId, "Berserkers of Blood Ridge", new CardType[]{CardType.CREATURE}, "{4}{R}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setRed(true); + this.subtype.add("Human"); + this.subtype.add("Berserker"); + this.art = "121659_typ_reg_sty_010.jpg"; + this.power = new MageInt(4); + this.toughness = new MageInt(4); + this.addAbility(new AttacksEachTurnStaticAbility()); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/BlackKnight.java b/Mage.Sets/src/mage/sets/magic2010/BlackKnight.java new file mode 100644 index 0000000000..fee5eb6ac9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/BlackKnight.java @@ -0,0 +1,67 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.filter.FilterCard; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class BlackKnight extends CardImpl { + + private static FilterCard filter = new FilterCard("White"); + + static { + filter.setUseColor(true); + filter.getColor().setWhite(true); + } + + public BlackKnight(UUID ownerId) { + super(ownerId, "Black Knight", new CardType[]{CardType.CREATURE}, "{B}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.color.setBlack(true); + this.art = "121622_typ_reg_sty_010.jpg"; + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + this.addAbility(FirstStrikeAbility.getInstance()); + this.addAbility(new ProtectionAbility(filter)); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/BlindingMage.java b/Mage.Sets/src/mage/sets/magic2010/BlindingMage.java new file mode 100644 index 0000000000..05415a1374 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/BlindingMage.java @@ -0,0 +1,65 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCosts; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class BlindingMage extends CardImpl { + + public BlindingMage(UUID ownerId) { + super(ownerId, "Blinding Mage", new CardType[]{CardType.CREATURE}, "{1}{W}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.color.setWhite(true); + this.art = "121614_typ_reg_sty_010.jpg"; + this.power = new MageInt(1); + this.toughness = new MageInt(2); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCosts("{W}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/BogWraith.java b/Mage.Sets/src/mage/sets/magic2010/BogWraith.java new file mode 100644 index 0000000000..5b21f691a3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/BogWraith.java @@ -0,0 +1,64 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.LandwalkAbility; +import mage.cards.CardImpl; +import mage.filter.Filter.ComparisonScope; +import mage.filter.common.FilterLandPermanent; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class BogWraith extends CardImpl { + + private static FilterLandPermanent filter = new FilterLandPermanent("Swamp"); + + static { + filter.getSubtype().add("Swamp"); + filter.setScopeSubtype(ComparisonScope.Any); + } + + public BogWraith(UUID ownerId) { + super(ownerId, "Bog Wraith", new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlack(true); + this.subtype.add("Wraith"); + this.art = ""; + this.power = new MageInt(3); + this.toughness = new MageInt(3); + this.addAbility(new LandwalkAbility(filter)); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/BogardanHellkite.java b/Mage.Sets/src/mage/sets/magic2010/BogardanHellkite.java new file mode 100644 index 0000000000..96ec3dceff --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/BogardanHellkite.java @@ -0,0 +1,66 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DamageMultiEffect; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.common.TargetCreatureOrPlayer; +import mage.target.common.TargetCreatureOrPlayerAmount; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class BogardanHellkite extends CardImpl { + + public BogardanHellkite(UUID ownerId) { + super(ownerId, "Bogardan Hellkite", new CardType[]{CardType.CREATURE}, "{6}{R}{R}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Dragon"); + this.color.setRed(true); + this.art = "97381_typ_reg_sty_010.jpg"; + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + this.addAbility(FlashAbility.getInstance()); + this.addAbility(FlyingAbility.getInstance()); + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageMultiEffect(5), false); + ability.addTarget(new TargetCreatureOrPlayerAmount(5)); + this.addAbility(ability); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/DiabolicTutor.java b/Mage.Sets/src/mage/sets/magic2010/DiabolicTutor.java new file mode 100644 index 0000000000..161539a3b1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/DiabolicTutor.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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.abilities.effects.common.SearchLibraryPutInHandEffect; +import mage.cards.CardImpl; +import mage.filter.FilterCard; +import mage.sets.Magic2010; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author LokiX + */ +public class DiabolicTutor extends CardImpl { + + public DiabolicTutor(UUID onwerId){ + super(onwerId, "Diabolic Tutor", new CardType[]{CardType.INSTANT},"{2}{B}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlack(true); + this.art = "101052_typ_reg_sty_010.jpg"; + TargetCardInLibrary target = new TargetCardInLibrary(); + this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(target)); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/DoomBlade.java b/Mage.Sets/src/mage/sets/magic2010/DoomBlade.java new file mode 100644 index 0000000000..351372a551 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/DoomBlade.java @@ -0,0 +1,62 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.TargetController; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreaturePermanent; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LokiX + */ +public class DoomBlade extends CardImpl { + + private static FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature"); + + static { + filter.setUseColor(true); + filter.getColor().setBlack(true); + filter.setNotColor(true); + } + + public DoomBlade(UUID onwerId){ + super(onwerId, "Doom Blade", new CardType[]{CardType.INSTANT},"{1}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlack(true); + this.art = "121618_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetCreaturePermanent(1,1,filter, TargetController.ANY)); + this.getSpellAbility().addEffect(new DestroyTargetEffect()); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/Earthquake.java b/Mage.Sets/src/mage/sets/magic2010/Earthquake.java index 8d9bfa9562..65b0fede41 100644 --- a/Mage.Sets/src/mage/sets/magic2010/Earthquake.java +++ b/Mage.Sets/src/mage/sets/magic2010/Earthquake.java @@ -83,6 +83,4 @@ class EarthquakeEffect extends OneShotEffect { public String getText() { return "Earthquake deals X damage to each creature without flying and each player"; } - - } diff --git a/Mage.Sets/src/mage/sets/magic2010/EliteVanguard.java b/Mage.Sets/src/mage/sets/magic2010/EliteVanguard.java index 56a681fa97..bccca173ee 100644 --- a/Mage.Sets/src/mage/sets/magic2010/EliteVanguard.java +++ b/Mage.Sets/src/mage/sets/magic2010/EliteVanguard.java @@ -38,7 +38,7 @@ import mage.sets.Magic2010; * * @author BetaSteward_at_googlemail.com */ -public class EliteVanguard extends CardImpl { +public class EliteVanguard extends CardImpl { public EliteVanguard(UUID ownerId) { super(ownerId, "Elite Vanguard", new CardType[]{CardType.CREATURE}, "{W}"); @@ -46,7 +46,7 @@ public class EliteVanguard extends CardImpl { this.color.setWhite(true); this.subtype.add("Human"); this.subtype.add("Soldier"); - this.art = ""; + this.art = "103534_typ_reg_sty_010.jpg"; this.power = new MageInt(2); this.toughness = new MageInt(1); } diff --git a/Mage.Sets/src/mage/sets/magic2010/GiantGrowth.java b/Mage.Sets/src/mage/sets/magic2010/GiantGrowth.java new file mode 100644 index 0000000000..19bac95a5c --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/GiantGrowth.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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.abilities.effects.common.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class GiantGrowth extends CardImpl { + + public GiantGrowth(UUID ownerId) { + super(ownerId, "Giant Growth", new CardType[]{CardType.INSTANT}, "{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setGreen(true); + this.art = "101059_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn)); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/HonorOfThePure.java b/Mage.Sets/src/mage/sets/magic2010/HonorOfThePure.java index 6d2820cecb..967f1fff18 100644 --- a/Mage.Sets/src/mage/sets/magic2010/HonorOfThePure.java +++ b/Mage.Sets/src/mage/sets/magic2010/HonorOfThePure.java @@ -50,7 +50,7 @@ public class HonorOfThePure extends CardImpl { super(ownerId, "Honor of the Pure", new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); this.expansionSetId = Magic2010.getInstance().getId(); this.color.setWhite(true); - this.art = ""; + this.art = "102628_typ_reg_sty_010.jpg"; filter.setUseColor(true); filter.getColor().setWhite(true); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter))); diff --git a/Mage.Sets/src/mage/sets/magic2010/HowlingMine.java b/Mage.Sets/src/mage/sets/magic2010/HowlingMine.java index 3a2ba09cbf..a64246e382 100644 --- a/Mage.Sets/src/mage/sets/magic2010/HowlingMine.java +++ b/Mage.Sets/src/mage/sets/magic2010/HowlingMine.java @@ -64,7 +64,7 @@ class HowlingMineAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == EventType.DRAW_STEP_PRE) { - this.targets.add(new TargetPlayer()); + this.addTarget(new TargetPlayer()); this.targets.get(0).getTargets().add(event.getPlayerId()); trigger(game, event.getPlayerId()); return true; diff --git a/Mage.Sets/src/mage/sets/magic2010/LlanowarElves.java b/Mage.Sets/src/mage/sets/magic2010/LlanowarElves.java new file mode 100644 index 0000000000..170aa54bb8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/LlanowarElves.java @@ -0,0 +1,61 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.RedManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class LlanowarElves extends CardImpl { + + public LlanowarElves(UUID ownerId) { + super(ownerId, "Llanowar Elves", new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.subtype.add("Elf"); + this.subtype.add("Druid"); + this.color.setGreen(true); + this.art = "86938_typ_reg_sty_010.jpg"; + this.power = new MageInt(1); + this.toughness = new MageInt(1); + this.addAbility(new GreenManaAbility()); + } + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/MightOfOaks.java b/Mage.Sets/src/mage/sets/magic2010/MightOfOaks.java new file mode 100644 index 0000000000..e391e95e9d --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/MightOfOaks.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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.abilities.effects.common.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LokiX + */ +public class MightOfOaks extends CardImpl { + + public MightOfOaks(UUID onwerId){ + super(onwerId, "Might of Oaks", new CardType[]{CardType.INSTANT},"{3}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setGreen(true); + this.art = "102958_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new BoostTargetEffect(7, 7, Duration.EndOfTurn)); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/MindRot.java b/Mage.Sets/src/mage/sets/magic2010/MindRot.java new file mode 100644 index 0000000000..f5544e8e83 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/MindRot.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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.abilities.effects.common.DiscardTargetEffect; +import mage.cards.CardImpl; +import mage.sets.Magic2010; +import mage.target.TargetPlayer; + +/** + * + * @author LokiX + */ +public class MindRot extends CardImpl { + + public MindRot(UUID onwerId){ + super(onwerId, "Mind Rot", new CardType[]{CardType.SORCERY},"{2}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlack(true); + this.art = ""; + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new DiscardTargetEffect(2)); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/MindSpring.java b/Mage.Sets/src/mage/sets/magic2010/MindSpring.java new file mode 100644 index 0000000000..a5ecbb6a10 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/MindSpring.java @@ -0,0 +1,77 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.players.Player; +import mage.sets.Magic2010; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class MindSpring extends CardImpl { + + public MindSpring(UUID ownerId) { + super(ownerId, "Mind Spring", new CardType[]{CardType.SORCERY}, "{X}{U}{U}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlue(true); + this.art = "109919_typ_reg_sty_010.jpg"; + this.getSpellAbility().addEffect(new MindSpringEffect()); + } + +} + +class MindSpringEffect extends OneShotEffect { + + public MindSpringEffect() { + super(Outcome.DrawCard); + } + + @Override + public boolean apply(Game game) { + int amount = this.source.getManaCosts().getVariableCosts().get(0).getValue(); + Player player = game.getPlayer(this.source.getControllerId()); + if (player != null) { + player.drawCards(amount, game); + return true; + } + return false; + } + + @Override + public String getText() { + return "Draw X cards"; + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/Naturalize.java b/Mage.Sets/src/mage/sets/magic2010/Naturalize.java new file mode 100644 index 0000000000..f10dac036f --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/Naturalize.java @@ -0,0 +1,63 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.TargetController; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.Filter.ComparisonScope; +import mage.filter.FilterPermanent; +import mage.sets.Magic2010; +import mage.target.TargetPermanent; + +/** + * + * @author LokiX + */ +public class Naturalize extends CardImpl { + + private static FilterPermanent filter = new FilterPermanent("artifact or enchantment"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.getCardType().add(CardType.ENCHANTMENT); + filter.setScopeColor(ComparisonScope.Any); + } + + public Naturalize(UUID onwerId){ + super(onwerId, "Naturalize", new CardType[]{CardType.INSTANT},"{1}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setGreen(true); + this.art = "49669_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetPermanent(filter, TargetController.ANY)); + this.getSpellAbility().addEffect(new DestroyTargetEffect()); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/Negate.java b/Mage.Sets/src/mage/sets/magic2010/Negate.java new file mode 100644 index 0000000000..7b0e7dd5c1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/Negate.java @@ -0,0 +1,62 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.cards.CardImpl; +import mage.filter.FilterSpell; +import mage.sets.Magic2010; +import mage.target.TargetSpell; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class Negate extends CardImpl { + + private static FilterSpell filter = new FilterSpell("noncreature spell"); + + static { + filter.getCardType().add(CardType.CREATURE); + filter.setNotCardType(true); + } + + public Negate(UUID ownerId) { + super(ownerId, "Negate", new CardType[]{CardType.INSTANT}, "{1}{U}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlue(true); + this.art = "109907_typ_reg_sty_010.jpg"; + this.getSpellAbility().addTarget(new TargetSpell(filter)); + this.getSpellAbility().addEffect(new CounterTargetEffect()); + } + + +} diff --git a/Mage.Sets/src/mage/sets/magic2010/Overrun.java b/Mage.Sets/src/mage/sets/magic2010/Overrun.java new file mode 100644 index 0000000000..f847d64041 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/Overrun.java @@ -0,0 +1,56 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.abilities.effects.common.BoostControlledEffect; +import mage.abilities.effects.common.GainAbilityControlledEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreaturePermanent; +import mage.sets.Magic2010; + +/** + * + * @author LokiX + */ +public class Overrun extends CardImpl { + + public Overrun(UUID onwerId) { + super(onwerId, "Overrun", new CardType[]{CardType.SORCERY},"{2}{G}{G}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setGreen(true); + this.art = "33280_typ_reg_sty_001.jpg"; + + this.getSpellAbility().addEffect(new BoostControlledEffect(3, 3, Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent())); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/RampantGrowth.java b/Mage.Sets/src/mage/sets/magic2010/RampantGrowth.java new file mode 100644 index 0000000000..ef2f1d2a8c --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/RampantGrowth.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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.abilities.effects.common.SearchLibraryPutInPlayEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterBasicLandCard; +import mage.sets.Magic2010; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author LokiX + */ +public class RampantGrowth extends CardImpl { + + public RampantGrowth(UUID ownerId){ + super(ownerId, "Rampant Growth", new CardType[]{CardType.SORCERY}, "{1}{G}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setGreen(true); + this.art = "101061_typ_reg_sty_010.jpg"; + TargetCardInLibrary target = new TargetCardInLibrary(new FilterBasicLandCard()); + this.getSpellAbility().addTarget(target); + this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true)); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/RoyalAssassin.java b/Mage.Sets/src/mage/sets/magic2010/RoyalAssassin.java new file mode 100644 index 0000000000..08047659b6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2010/RoyalAssassin.java @@ -0,0 +1,81 @@ +/* + * 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.magic2010; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.TargetController; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.ActivatedAbilityImpl; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.Filter.ComparisonScope; +import mage.filter.common.FilterCreaturePermanent; +import mage.sets.Magic2010; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LokiX + */ +public class RoyalAssassin extends CardImpl { + + public RoyalAssassin(UUID onwerId){ + super(onwerId,"Royal Assassin", new CardType[]{CardType.CREATURE},"{1}{B}{B}"); + this.expansionSetId = Magic2010.getInstance().getId(); + this.color.setBlack(true); + this.subtype.add("Human"); + this.subtype.add("Assassin"); + this.art = "48786_typ_reg_sty_010.jpg"; + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + this.addAbility(new RoyalAssassinAbility()); + } +} + +class RoyalAssassinAbility extends ActivatedAbilityImpl { + + private static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + + static { + filter.setUseTapped(true); + filter.setScopeColor(ComparisonScope.Any); + filter.setTapped(true); + } + + public RoyalAssassinAbility(){ + super(Zone.BATTLEFIELD, null); + addTarget(new TargetCreaturePermanent(1,1,filter, TargetController.ANY)); + addCost(new TapSourceCost()); + addEffect(new DestroyTargetEffect()); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2010/TimeWarp.java b/Mage.Sets/src/mage/sets/magic2010/TimeWarp.java index 49ddebdebc..3846c6f77f 100644 --- a/Mage.Sets/src/mage/sets/magic2010/TimeWarp.java +++ b/Mage.Sets/src/mage/sets/magic2010/TimeWarp.java @@ -63,7 +63,7 @@ class TimeWarpEffect extends OneShotEffect { @Override public boolean apply(Game game) { - game.getState().getTurnMods().add(new TurnMod(source.getFirstTarget())); + game.getState().getTurnMods().add(new TurnMod(source.getFirstTarget(), false)); return true; } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/Deprive.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/Deprive.java new file mode 100644 index 0000000000..b608ace030 --- /dev/null +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/Deprive.java @@ -0,0 +1,58 @@ +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.abilities.costs.common.ReturnToHandTargetCost; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterLandPermanent; +import mage.sets.RiseOfTheEldrazi; +import mage.target.TargetSpell; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class Deprive extends CardImpl { + + public Deprive(UUID ownerId) { + super(ownerId, "Deprive", new CardType[]{CardType.INSTANT}, "{U}{U}"); + this.expansionSetId = RiseOfTheEldrazi.getInstance().getId(); + this.color.setBlue(true); + this.art = "127324_typ_reg_sty_010.jpg"; + this.getSpellAbility().addCost(new ReturnToHandTargetCost(new TargetControlledPermanent(1, 1, new FilterLandPermanent()))); + this.getSpellAbility().addTarget(new TargetSpell()); + this.getSpellAbility().addEffect(new CounterTargetEffect()); + } + + +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/GideonJura.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/GideonJura.java new file mode 100644 index 0000000000..96bfecfa45 --- /dev/null +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/GideonJura.java @@ -0,0 +1,135 @@ +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.TargetController; +import mage.MageInt; +import mage.abilities.LoyaltyAbility; +import mage.abilities.effects.RequirementAttackEffect; +import mage.abilities.effects.common.BecomesCreatureSourceEOTEffect; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.effects.common.PreventAllDamageSourceEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreatureForCombat; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.Token; +import mage.players.Player; +import mage.sets.RiseOfTheEldrazi; +import mage.target.common.TargetCreaturePermanent; +import mage.target.common.TargetOpponent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class GideonJura extends CardImpl { + + private static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + + static { + filter.setTapped(true); + } + + public GideonJura(UUID ownerId) { + super(ownerId, "Gideon Jura", new CardType[]{CardType.PLANESWALKER}, "{3}{W}{W}"); + this.expansionSetId = RiseOfTheEldrazi.getInstance().getId(); + this.subtype.add("Gideon"); + this.color.setWhite(true); + this.art = "127248_typ_reg_sty_010.jpg"; + this.loyalty = new MageInt(6); + + LoyaltyAbility ability1 = new LoyaltyAbility(new GideonJuraEffect(), 2); + ability1.addTarget(new TargetOpponent()); + this.addAbility(ability1); + + LoyaltyAbility ability2 = new LoyaltyAbility(new DestroyTargetEffect(), -2); + ability2.addTarget(new TargetCreaturePermanent(1, 1, filter, TargetController.ANY)); + this.addAbility(ability2); + + LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEOTEffect(new GideonJuraToken(), "planeswalker"), 0); + ability3.addEffect(new PreventAllDamageSourceEffect(Duration.EndOfTurn)); + this.addAbility(ability3); + } + +} + +class GideonJuraToken extends Token { + + public GideonJuraToken() { + super("", "6/6 Human Soldier creature"); + cardType.add(CardType.CREATURE); + subtype.add("Human"); + subtype.add("Soldier"); + power = new MageInt(6); + toughness = new MageInt(6); + } + +} + +class GideonJuraEffect extends RequirementAttackEffect { + + public GideonJuraEffect() { + super(Duration.OneUse); + } + + @Override + public boolean applies(GameEvent event, Game game) { + if (event.getType().equals(EventType.DECLARE_ATTACKERS_STEP_PRE) && event.getPlayerId().equals(this.source.getFirstTarget())) + return true; + if (event.getType().equals(EventType.END_PHASE_POST) && event.getPlayerId().equals(this.source.getFirstTarget())) + used = true; + return false; + } + + @Override + public boolean apply(Game game) { + Player player = game.getPlayer(this.source.getFirstTarget()); + if (player != null) { + for (Permanent creature: game.getBattlefield().getAllActivePermanents(new FilterCreatureForCombat(), player.getId())) { + if (creature.canAttack(game)) { + game.getCombat().declareAttacker(creature.getId(), this.source.getControllerId(), game); + } + } + return true; + } + return false; + } + + @Override + public String getText() { + return "During target opponent's next turn, creatures that player controls attack {this} if able"; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/KarganDragonlord.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/KarganDragonlord.java index 4118870f92..0f2b390370 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/KarganDragonlord.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/KarganDragonlord.java @@ -57,7 +57,7 @@ public class KarganDragonlord extends LevelerCard { this.subtype.add("Human"); this.subtype.add("Warrior"); this.color.setRed(true); - this.art = ""; + this.art = "127295_typ_reg_sty_010.jpg"; this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java new file mode 100644 index 0000000000..ad7cff1b52 --- /dev/null +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java @@ -0,0 +1,59 @@ +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DrawCardControllerEffect; +import mage.abilities.keyword.DefenderAbility; +import mage.cards.CardImpl; +import mage.sets.RiseOfTheEldrazi; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class WallOfOmens extends CardImpl { + + public WallOfOmens(UUID ownerId) { + super(ownerId, "Wall Of Omens", new CardType[]{CardType.CREATURE}, "{1}{W}"); + this.expansionSetId = RiseOfTheEldrazi.getInstance().getId(); + this.subtype.add("Wall"); + this.color.setWhite(true); + this.art = "127342_typ_reg_sty_010.jpg"; + this.power = new MageInt(0); + this.toughness = new MageInt(4); + + this.addAbility(DefenderAbility.getInstance()); + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardControllerEffect(1), false)); + } + +} diff --git a/Mage.Sets/src/mage/sets/shardsofalara/KnightOfTheWhiteOrchid.java b/Mage.Sets/src/mage/sets/shardsofalara/KnightOfTheWhiteOrchid.java index 533b8c17d7..c248ade28a 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/KnightOfTheWhiteOrchid.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/KnightOfTheWhiteOrchid.java @@ -95,8 +95,6 @@ class KnightOfTheWhiteOrchidAbility extends EntersBattlefieldTriggeredAbility { FilterLandPermanent filter = new FilterLandPermanent(); int numLands = game.getBattlefield().countAll(filter, this.controllerId); for (UUID opponentId: game.getOpponents(this.controllerId)) { - filter.getControllerId().clear(); - filter.getControllerId().add(opponentId); if (numLands < game.getBattlefield().countAll(filter, opponentId)) { return true; } diff --git a/Mage.Sets/src/mage/sets/shardsofalara/RafiqOfTheMany.java b/Mage.Sets/src/mage/sets/shardsofalara/RafiqOfTheMany.java index 432d0cac9c..2951a7a639 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/RafiqOfTheMany.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/RafiqOfTheMany.java @@ -78,7 +78,7 @@ class RafiqOfTheManyAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == EventType.DECLARED_ATTACKERS && game.getActivePlayerId().equals(this.controllerId) ) { if (game.getCombat().attacksAlone()) { - this.targets.add(new TargetCreaturePermanent()); + this.addTarget(new TargetCreaturePermanent()); this.targets.get(0).getTargets().add(game.getCombat().getAttackers().get(0)); trigger(game, event.getPlayerId()); return true; diff --git a/Mage.Sets/src/mage/sets/worldwake/BasiliskCollar.java b/Mage.Sets/src/mage/sets/worldwake/BasiliskCollar.java index 1233f4e5c0..8ee9446050 100644 --- a/Mage.Sets/src/mage/sets/worldwake/BasiliskCollar.java +++ b/Mage.Sets/src/mage/sets/worldwake/BasiliskCollar.java @@ -34,7 +34,7 @@ import mage.Constants.Outcome; import mage.Constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.GainAbilityEquippedEffect; +import mage.abilities.effects.common.GainAbilityAttachedEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.LifelinkAbility; @@ -53,7 +53,7 @@ public class BasiliskCollar extends CardImpl { this.art = "126549_typ_reg_sty_010.jpg"; this.subtype.add("Equipment"); this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityEquippedEffect(LifelinkAbility.getInstance()))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityEquippedEffect(DeathtouchAbility.getInstance()))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(LifelinkAbility.getInstance()))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(DeathtouchAbility.getInstance()))); } } diff --git a/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java b/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java index 72162054b7..074caed813 100644 --- a/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java +++ b/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java @@ -58,7 +58,7 @@ public class CelestialColonnade extends CardImpl { this.addAbility(new EntersBattlefieldStaticAbility(new EntersBattlefieldTappedEffect())); this.addAbility(new BlueManaAbility()); this.addAbility(new WhiteManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new CelestialColonnadeToken()), new ManaCosts("{3}{W}{U}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new CelestialColonnadeToken(), "land"), new ManaCosts("{3}{W}{U}"))); } } diff --git a/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java b/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java new file mode 100644 index 0000000000..a6521f94aa --- /dev/null +++ b/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java @@ -0,0 +1,94 @@ +/* + * 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.worldwake; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Zone; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.AddCountersSourceEffect; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.keyword.MultikickerAbility; +import mage.abilities.mana.ManaAbility; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.sets.Worldwake; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class EverflowingChalice extends CardImpl { + + public EverflowingChalice(UUID ownerId) { + super(ownerId, "Everflowing Chalice", new CardType[]{CardType.ARTIFACT}, "{0}"); + this.expansionSetId = Worldwake.getInstance().getId(); + this.art = "126542_typ_reg_sty_010.jpg"; + MultikickerAbility ability = new MultikickerAbility(new AddCountersSourceEffect("charge", 1), false); + ability.addManaCost(new GenericManaCost(2)); + this.addAbility(ability); + this.addAbility(new EverflowingChaliceAbility()); + } + +} + +class EverflowingChaliceAbility extends ManaAbility { + + public EverflowingChaliceAbility() { + super(Zone.BATTLEFIELD, new EverflowingChaliceEffect(), new TapSourceCost()); + } + + @Override + public Mana getNetMana(Game game) { + return Mana.ColorlessMana(game.getPermanent(this.getSourceId()).getCounters().getCount("charge")); + } + +} + +class EverflowingChaliceEffect extends ManaEffect { + + public EverflowingChaliceEffect() { + super(new Mana()); + } + + @Override + public boolean apply(Game game) { + this.mana.clear(); + this.mana.setColorless(game.getPermanent(this.source.getSourceId()).getCounters().getCount("charge")); + return super.apply(game); + } + + @Override + public String getText() { + return "Add {1} to your mana pool for each charge counter on {this}"; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/worldwake/JaceTheMindSculptor.java b/Mage.Sets/src/mage/sets/worldwake/JaceTheMindSculptor.java new file mode 100644 index 0000000000..033b33503e --- /dev/null +++ b/Mage.Sets/src/mage/sets/worldwake/JaceTheMindSculptor.java @@ -0,0 +1,184 @@ +/* + * 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.worldwake; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.LoyaltyAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.game.ExileZone; +import mage.game.Game; +import mage.players.Player; +import mage.sets.Worldwake; +import mage.target.TargetPlayer; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class JaceTheMindSculptor extends CardImpl { + + + public JaceTheMindSculptor(UUID ownerId) { + super(ownerId, "Jace, the Mind Sculptor", new CardType[]{CardType.PLANESWALKER}, "{2}{U}{U}"); + this.expansionSetId = Worldwake.getInstance().getId(); + this.subtype.add("Jace"); + this.color.setBlue(true); + this.art = "126493_typ_reg_sty_010.jpg"; + this.loyalty = new MageInt(3); + + LoyaltyAbility ability1 = new LoyaltyAbility(new JaceTheMindSculptorEffect1(), 2); + ability1.addTarget(new TargetPlayer()); + this.addAbility(ability1); + + LoyaltyAbility ability2 = new LoyaltyAbility(new JaceTheMindSculptorEffect2(), 0); + this.addAbility(ability2); + + LoyaltyAbility ability3 = new LoyaltyAbility(new ReturnToHandTargetEffect(), -1); + ability3.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability3); + + LoyaltyAbility ability4 = new LoyaltyAbility(new JaceTheMindSculptorEffect3(), -12); + ability4.addTarget(new TargetPlayer()); + this.addAbility(ability4); + + } + +} + +class JaceTheMindSculptorEffect1 extends OneShotEffect { + + public JaceTheMindSculptorEffect1() { + super(Outcome.Detriment); + } + + @Override + public boolean apply(Game game) { + Player controller = game.getPlayer(this.source.getControllerId()); + Player player = game.getPlayer(this.source.getFirstTarget()); + if (controller != null && player != null) { + Cards cards = new CardsImpl(Zone.REVEALED); + cards.add(player.getLibrary().getFromTop(game)); + controller.lookAtCards(cards, game); + if (controller.chooseUse(outcome, "Do you wish to put card on the bottom of player's library?", game)) { + Card card = player.getLibrary().removeFromTop(game); + if (card != null) + player.getLibrary().putOnBottom(card, game); + } + return true; + } + return false; + } + + @Override + public String getText() { + return "Look at the top card of target player's library. You may put that card on the bottom of that player's library"; + } + +} + +class JaceTheMindSculptorEffect2 extends OneShotEffect { + + public JaceTheMindSculptorEffect2() { + super(Outcome.DrawCard); + } + + @Override + public boolean apply(Game game) { + Player player = game.getPlayer(this.source.getControllerId()); + if (player != null) { + player.drawCards(3, game); + putOnLibrary(player, game); + putOnLibrary(player, game); + return true; + } + return false; + } + + private boolean putOnLibrary(Player player, Game game) { + TargetCardInHand target = new TargetCardInHand(); + target.setRequired(true); + target.setAbility(source); + player.chooseTarget(Outcome.ReturnToHand, target, game); + Card card = player.getHand().get(target.getFirstTarget()); + if (card != null) { + player.getHand().remove(card); + player.getLibrary().putOnTop(card, game); + } + return true; + } + + @Override + public String getText() { + return "Draw three cards, then put two cards from your hand on top of your library in any order"; + } + +} + +class JaceTheMindSculptorEffect3 extends OneShotEffect { + + public JaceTheMindSculptorEffect3() { + super(Outcome.DrawCard); + } + + @Override + public boolean apply(Game game) { + Player player = game.getPlayer(this.source.getFirstTarget()); + ExileZone exile = game.getExile().getPermanentExile(); + if (player != null) { + while (true) { + if (player.getLibrary().getFromTop(game) == null) + break; + Card card = player.getLibrary().removeFromTop(game); + exile.add(card); + } + player.getLibrary().addAll(player.getHand()); + player.getLibrary().shuffle(); + player.getHand().clear(); + return true; + } + return false; + } + + @Override + public String getText() { + return "Exile all cards from target player's library, then that player shuffles his or her hand into his or her library"; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java b/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java index b27926dfe7..193d074ab7 100644 --- a/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java +++ b/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java @@ -58,7 +58,7 @@ public class LavaclawReaches extends CardImpl { this.addAbility(new EntersBattlefieldStaticAbility(new EntersBattlefieldTappedEffect())); this.addAbility(new BlackManaAbility()); this.addAbility(new RedManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new LavaclawReachesToken()), new ManaCosts("{1}{B}{R}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new LavaclawReachesToken(), "land"), new ManaCosts("{1}{B}{R}"))); } } diff --git a/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java b/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java index d89f6d1df1..8bc80a442d 100644 --- a/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java +++ b/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java @@ -58,7 +58,7 @@ public class RagingRavine extends CardImpl { this.addAbility(new EntersBattlefieldStaticAbility(new EntersBattlefieldTappedEffect())); this.addAbility(new GreenManaAbility()); this.addAbility(new RedManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new RagingRavineToken()), new ManaCosts("{2}{R}{G}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new RagingRavineToken(), "land"), new ManaCosts("{2}{R}{G}"))); } } diff --git a/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java b/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java index a9e8a44e79..eb7168f527 100644 --- a/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java +++ b/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java @@ -57,7 +57,7 @@ public class StirringWildwood extends CardImpl { this.addAbility(new EntersBattlefieldStaticAbility(new EntersBattlefieldTappedEffect())); this.addAbility(new GreenManaAbility()); this.addAbility(new WhiteManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new StirringWildwoodToken()), new ManaCosts("{1}{G}{W}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new StirringWildwoodToken(), "land"), new ManaCosts("{1}{G}{W}"))); } } diff --git a/Mage.Sets/src/mage/sets/worldwake/TectonicEdge.java b/Mage.Sets/src/mage/sets/worldwake/TectonicEdge.java index cb96d80d6e..f8128141c6 100644 --- a/Mage.Sets/src/mage/sets/worldwake/TectonicEdge.java +++ b/Mage.Sets/src/mage/sets/worldwake/TectonicEdge.java @@ -81,8 +81,6 @@ class TectonicEdgeCost extends CostImpl { @Override public boolean canPay(UUID playerId, Game game) { for (UUID opponentId: game.getOpponents(playerId)) { - filter.getControllerId().clear(); - filter.getControllerId().add(opponentId); if (game.getBattlefield().countAll(filter, opponentId) > 3) { return true; } diff --git a/Mage.Sets/src/mage/sets/zendikar/SpreadingSeas.java b/Mage.Sets/src/mage/sets/zendikar/SpreadingSeas.java new file mode 100644 index 0000000000..03e9a7f148 --- /dev/null +++ b/Mage.Sets/src/mage/sets/zendikar/SpreadingSeas.java @@ -0,0 +1,123 @@ +/* + * 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.zendikar; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Layer; +import mage.Constants.Outcome; +import mage.Constants.SubLayer; +import mage.Constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.DrawCardControllerEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.mana.BlueManaAbility; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.sets.Zendikar; +import mage.target.TargetPermanent; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class SpreadingSeas extends CardImpl { + + public SpreadingSeas(UUID ownerId) { + super(ownerId, "Spreading Seas", new CardType[]{CardType.ENCHANTMENT}, "{1}{U}"); + this.expansionSetId = Zendikar.getInstance().getId(); + this.color.setBlue(true); + this.art = "123683_typ_reg_sty_010.jpg"; + this.subtype.add("Aura"); + + TargetPermanent auraTarget = new TargetLandPermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); + Ability ability = new EnchantAbility(Outcome.Detriment, auraTarget); + this.addAbility(ability); + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardControllerEffect(1), false)); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpreadingSeasEffect())); + + } +} + +class SpreadingSeasEffect extends ContinuousEffectImpl { + + public SpreadingSeasEffect() { + super(Duration.WhileOnBattlefield, Outcome.Detriment); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Game game) { + Permanent enchantment = game.getPermanent(this.source.getSourceId()); + if (enchantment.getAttachedTo() != null) { + Permanent land = game.getPermanent(enchantment.getAttachedTo()); + if (land != null) { + switch (layer) { + case TypeChangingEffects_4: + if (sublayer == SubLayer.NA) { + land.getSubtype().clear(); + land.getSubtype().add("Island"); + } + break; + case AbilityAddingRemovingEffects_6: + if (sublayer == SubLayer.NA) { + land.getAbilities().clear(); + land.addAbility(new BlueManaAbility()); + } + break; + } + return true; + } + } + return false; + } + + @Override + public boolean apply(Game game) { + return false; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.AbilityAddingRemovingEffects_6 || layer == layer.TypeChangingEffects_4; + } + + @Override + public String getText() { + return "Enchanted land is an Island."; + } +} \ No newline at end of file