From 5e0041db60e10fb0b06088e4e3c702090199b23e Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Thu, 11 Jul 2013 15:08:23 +0200 Subject: [PATCH] [M14] Added 7 cards. --- .../mage/sets/magic2014/KalonianHydra.java | 119 ++++++++++++++++++ .../sets/magic2014/OathOfTheAncientWood.java | 76 +++++++++++ .../mage/sets/magic2014/PredatorySliver.java | 69 ++++++++++ .../mage/sets/magic2014/PrimevalBounty.java | 92 ++++++++++++++ .../mage/sets/magic2014/StrikingSliver.java | 71 +++++++++++ .../sets/magic2014/ThorncasterSliver.java | 77 ++++++++++++ .../mage/sets/magic2014/VoraciousWurm.java | 68 ++++++++++ 7 files changed, 572 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/magic2014/KalonianHydra.java create mode 100644 Mage.Sets/src/mage/sets/magic2014/OathOfTheAncientWood.java create mode 100644 Mage.Sets/src/mage/sets/magic2014/PredatorySliver.java create mode 100644 Mage.Sets/src/mage/sets/magic2014/PrimevalBounty.java create mode 100644 Mage.Sets/src/mage/sets/magic2014/StrikingSliver.java create mode 100644 Mage.Sets/src/mage/sets/magic2014/ThorncasterSliver.java create mode 100644 Mage.Sets/src/mage/sets/magic2014/VoraciousWurm.java diff --git a/Mage.Sets/src/mage/sets/magic2014/KalonianHydra.java b/Mage.Sets/src/mage/sets/magic2014/KalonianHydra.java new file mode 100644 index 00000000000..192aec6fc80 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/KalonianHydra.java @@ -0,0 +1,119 @@ +/* + * 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.magic2014; + +import java.util.List; +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.filter.predicate.permanent.CounterPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author LevelX2 + */ +public class KalonianHydra extends CardImpl { + + public KalonianHydra(UUID ownerId) { + super(ownerId, 181, "Kalonian Hydra", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); + this.expansionSetCode = "M14"; + this.subtype.add("Hydra"); + + this.color.setGreen(true); + this.power = new MageInt(0); + this.toughness = new MageInt(0); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + // Kalonian Hydra enters the battlefield with four +1/+1 counters on it. + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)))); + // Whenever Kalonian Hydra attacks, double the number of +1/+1 counters on each creature you control. + this.addAbility(new AttacksTriggeredAbility(new KalonianHydraEffect(), false)); + + } + + public KalonianHydra(final KalonianHydra card) { + super(card); + } + + @Override + public KalonianHydra copy() { + return new KalonianHydra(this); + } +} + + +class KalonianHydraEffect extends OneShotEffect { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); + static { + filter.add(new ControllerPredicate(TargetController.YOU)); + filter.add(new CounterPredicate(CounterType.P1P1)); + } + + public KalonianHydraEffect() { + super(Outcome.BoostCreature); + this.staticText = "double the number of +1/+1 counters on each creature you control"; + } + + public KalonianHydraEffect(final KalonianHydraEffect effect) { + super(effect); + } + + @Override + public KalonianHydraEffect copy() { + return new KalonianHydraEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + List permanents = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game); + for (Permanent permanent : permanents) { + int existingCounters = permanent.getCounters().getCount(CounterType.P1P1); + if (existingCounters > 0) { + permanent.addCounters(CounterType.P1P1.createInstance(existingCounters), game); + } + } + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/OathOfTheAncientWood.java b/Mage.Sets/src/mage/sets/magic2014/OathOfTheAncientWood.java new file mode 100644 index 00000000000..513ecafb0ba --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/OathOfTheAncientWood.java @@ -0,0 +1,76 @@ +/* + * 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.magic2014; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterEnchantmentPermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class OathOfTheAncientWood extends CardImpl { + + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Oath of the Ancient Wood or another enchantment"); + static { + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public OathOfTheAncientWood(UUID ownerId) { + super(ownerId, 187, "Oath of the Ancient Wood", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}"); + this.expansionSetCode = "M14"; + + this.color.setGreen(true); + + // Whenever Oath of the Ancient Wood or another enchantment enters the battlefield under your control, you may put a +1/+1 counter on target creature. + Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance()); + Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, effect, filter, false, false, null, true); + ability.addTarget(new TargetCreaturePermanent(true)); + } + + public OathOfTheAncientWood(final OathOfTheAncientWood card) { + super(card); + } + + @Override + public OathOfTheAncientWood copy() { + return new OathOfTheAncientWood(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/PredatorySliver.java b/Mage.Sets/src/mage/sets/magic2014/PredatorySliver.java new file mode 100644 index 00000000000..6223370622b --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/PredatorySliver.java @@ -0,0 +1,69 @@ +/* + * 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.magic2014; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continious.BoostControlledEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class PredatorySliver extends CardImpl { + + public PredatorySliver(UUID ownerId) { + super(ownerId, 189, "Predatory Sliver", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}"); + this.expansionSetCode = "M14"; + this.subtype.add("Sliver"); + + this.color.setGreen(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Sliver creatures you control get +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new BoostControlledEffect(1,1, Duration.WhileInGraveyard, new FilterCreaturePermanent("Sliver","Sliver creatures")))); + } + + public PredatorySliver(final PredatorySliver card) { + super(card); + } + + @Override + public PredatorySliver copy() { + return new PredatorySliver(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/PrimevalBounty.java b/Mage.Sets/src/mage/sets/magic2014/PrimevalBounty.java new file mode 100644 index 00000000000..a021f07ba7b --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/PrimevalBounty.java @@ -0,0 +1,92 @@ +/* + * 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.magic2014; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.SpellCastTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.counters.CounterType; +import mage.filter.FilterSpell; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.permanent.token.BeastToken; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class PrimevalBounty extends CardImpl { + + private static final FilterSpell filterCreature = new FilterSpell("a creature spell"); + private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell"); + static { + filterCreature.add(new CardTypePredicate(CardType.CREATURE)); + filterNonCreature.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); + } + + public PrimevalBounty(UUID ownerId) { + super(ownerId, 190, "Primeval Bounty", Rarity.MYTHIC, new CardType[]{CardType.ENCHANTMENT}, "{5}{G}"); + this.expansionSetCode = "M14"; + + this.color.setGreen(true); + + // Whenever you cast a creature spell, put a 3/3 green Beast creature token onto the battlefield. + this.addAbility(new SpellCastTriggeredAbility(new CreateTokenEffect(new BeastToken()), filterCreature, false)); + + // Whenever you cast a noncreature spell, put three +1/+1 counters on target creature you control. + Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(3)); + Ability ability = new SpellCastTriggeredAbility(effect, filterNonCreature, false); + ability.addTarget(new TargetControlledCreaturePermanent(true)); + this.addAbility(ability); + + // Whenever a land enters the battlefield under your control, you gain 3 life. + effect = new GainLifeEffect(3); + ability = new EntersBattlefieldControlledTriggeredAbility(effect, new FilterLandPermanent("a land")); + this.addAbility(ability); + + } + + public PrimevalBounty(final PrimevalBounty card) { + super(card); + } + + @Override + public PrimevalBounty copy() { + return new PrimevalBounty(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/StrikingSliver.java b/Mage.Sets/src/mage/sets/magic2014/StrikingSliver.java new file mode 100644 index 00000000000..dd7d4207917 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/StrikingSliver.java @@ -0,0 +1,71 @@ +/* + * 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.magic2014; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continious.GainAbilityControlledEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class StrikingSliver extends CardImpl { + + public StrikingSliver(UUID ownerId) { + super(ownerId, 157, "Striking Sliver", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}"); + this.expansionSetCode = "M14"; + this.subtype.add("Sliver"); + + this.color.setRed(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Sliver creatures you control have first strike. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), + Duration.WhileOnBattlefield, new FilterCreaturePermanent("Sliver","Sliver creatures")))); + } + + public StrikingSliver(final StrikingSliver card) { + super(card); + } + + @Override + public StrikingSliver copy() { + return new StrikingSliver(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/ThorncasterSliver.java b/Mage.Sets/src/mage/sets/magic2014/ThorncasterSliver.java new file mode 100644 index 00000000000..9e06b15d0e8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/ThorncasterSliver.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.magic2014; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.continious.GainAbilityAllEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author LevelX2 + */ +public class ThorncasterSliver extends CardImpl { + + public ThorncasterSliver(UUID ownerId) { + super(ownerId, 158, "Thorncaster Sliver", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{R}"); + this.expansionSetCode = "M14"; + this.subtype.add("Sliver"); + + this.color.setRed(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Sliver creatures you control have "Whenever this creature attacks, it deals 1 damage to target creature or player." + Ability ability = new AttacksTriggeredAbility(new DamageTargetEffect(1), false); + ability.addTarget(new TargetCreatureOrPlayer(true)); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new GainAbilityAllEffect(ability, + Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent("Sliver","Sliver creatures"), + "Sliver creatures you control have \"Whenever this creature attacks, it deals 1 damage to target creature or player.\""))); + } + + public ThorncasterSliver(final ThorncasterSliver card) { + super(card); + } + + @Override + public ThorncasterSliver copy() { + return new ThorncasterSliver(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/VoraciousWurm.java b/Mage.Sets/src/mage/sets/magic2014/VoraciousWurm.java new file mode 100644 index 00000000000..082db9ba92e --- /dev/null +++ b/Mage.Sets/src/mage/sets/magic2014/VoraciousWurm.java @@ -0,0 +1,68 @@ +/* + * 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.magic2014; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.dynamicvalue.common.ControllerGotLifeCount; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.counters.CounterType; + +/** + * + * @author LevelX2 + */ +public class VoraciousWurm extends CardImpl { + + public VoraciousWurm(UUID ownerId) { + super(ownerId, 200, "Voracious Wurm", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{G}"); + this.expansionSetCode = "M14"; + this.subtype.add("Wurm"); + + this.color.setGreen(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Voracious Wurm enters the battlefield with X +1/+1 counters on it, where X is the amount of life you've gained this turn. + this.addAbility(new EntersBattlefieldAbility( + new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), ControllerGotLifeCount.getInstance(this), true))); + } + + public VoraciousWurm(final VoraciousWurm card) { + super(card); + } + + @Override + public VoraciousWurm copy() { + return new VoraciousWurm(this); + } +}