diff --git a/Mage.Sets/src/mage/cards/b/BullElephant.java b/Mage.Sets/src/mage/cards/b/BullElephant.java new file mode 100644 index 0000000000..659bab63a2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BullElephant.java @@ -0,0 +1,42 @@ +package mage.cards.b; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; + +public class BullElephant extends CardImpl { + + private static FilterControlledLandPermanent controlledForest = new FilterControlledLandPermanent("two forests you control"); + + static { + controlledForest.add(new SubtypePredicate(SubType.FOREST)); + } + + + public BullElephant(UUID cardId, CardSetInfo cardSetInfo) { + super(cardId, cardSetInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); + this.subtype.add("Elephant"); + power = new MageInt(4); + toughness = new MageInt(4); +//When Bull Elephant enters the battlefield, sacrifice it unless you return two Forests you control to their owner's hand. + addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(2, 2, controlledForest, false))))); + } + + public BullElephant(BullElephant other) { + super(other); + } + + public BullElephant copy() { + return new BullElephant(this); + } +} diff --git a/Mage.Sets/src/mage/cards/k/KaerveksSpite.java b/Mage.Sets/src/mage/cards/k/KaerveksSpite.java new file mode 100644 index 0000000000..d88a1197fa --- /dev/null +++ b/Mage.Sets/src/mage/cards/k/KaerveksSpite.java @@ -0,0 +1,35 @@ +package mage.cards.k; + +import mage.abilities.Ability; +import mage.abilities.costs.common.DiscardHandCost; +import mage.abilities.costs.common.SacrificeAllCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledPermanent; + +import java.util.UUID; + +public class KaerveksSpite extends CardImpl { + + private FilterControlledPermanent permanentsYouControl = new FilterControlledPermanent("all permanents you control"); + + public KaerveksSpite(UUID ownerId, CardSetInfo cardSetInfo) { + super(ownerId, cardSetInfo, new CardType[]{CardType.INSTANT}, "{B}{B}{B}"); + this.getSpellAbility().addCost(new SacrificeAllCost(permanentsYouControl)); + this.getSpellAbility().addCost(new DiscardHandCost()); + + Effect effect = new LoseLifeTargetEffect(5); + this.getSpellAbility().addEffect(effect); + } + + public KaerveksSpite(final KaerveksSpite other){ + super(other); + } + + public KaerveksSpite copy(){ + return new KaerveksSpite(this); + } +} diff --git a/Mage.Sets/src/mage/cards/v/ViashivanDragon.java b/Mage.Sets/src/mage/cards/v/ViashivanDragon.java new file mode 100644 index 0000000000..7e084b0009 --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/ViashivanDragon.java @@ -0,0 +1,41 @@ +package mage.cards.v; + +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ColoredManaCost; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; + +public class ViashivanDragon extends CardImpl { + + public ViashivanDragon(UUID cardId, CardSetInfo cardSetInfo) { + super(cardId, cardSetInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}{G}{G}"); + subtype.add("DRAGON"); + color.setGreen(true); + color.setRed(true); + power = new MageInt(4); + toughness = new MageInt(4); + + addAbility(FlyingAbility.getInstance()); + + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.R))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.G))); + + } + + public ViashivanDragon(ViashivanDragon other){ + super(other); + } + + public ViashivanDragon copy(){ + return new ViashivanDragon(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WickedReward.java b/Mage.Sets/src/mage/cards/w/WickedReward.java new file mode 100644 index 0000000000..17385719e2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WickedReward.java @@ -0,0 +1,33 @@ +package mage.cards.w; + +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; + +public class WickedReward extends CardImpl { + + public WickedReward(UUID cardId, CardSetInfo cardSetInfo){ + super(cardId, cardSetInfo, new CardType[]{CardType.INSTANT}, "{1}{B}"); + + //As an additional cost to cast Wicked Reward, sacrifice a creature. + this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); + + //Target creature gets +4/+2 until end of turn. + this.getSpellAbility().addEffect(new BoostTargetEffect(4, 2, Duration.EndOfTurn)); + } + + public WickedReward(WickedReward other){ + super(other); + } + + public WickedReward copy(){ + return new WickedReward(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Visions.java b/Mage.Sets/src/mage/sets/Visions.java index 9616a3b771..acbd7a675f 100644 --- a/Mage.Sets/src/mage/sets/Visions.java +++ b/Mage.Sets/src/mage/sets/Visions.java @@ -60,6 +60,7 @@ public class Visions extends ExpansionSet { cards.add(new SetCardInfo("Betrayal", 26, Rarity.COMMON, mage.cards.b.Betrayal.class)); cards.add(new SetCardInfo("Blanket of Night", 2, Rarity.UNCOMMON, mage.cards.b.BlanketOfNight.class)); cards.add(new SetCardInfo("Breezekeeper", 27, Rarity.COMMON, mage.cards.b.Breezekeeper.class)); + cards.add(new SetCardInfo("Bull Elephant", 51, Rarity.COMMON, mage.cards.b.BullElephant.class)); cards.add(new SetCardInfo("Chronatog", 28, Rarity.RARE, mage.cards.c.Chronatog.class)); cards.add(new SetCardInfo("City of Solitude", 52, Rarity.RARE, mage.cards.c.CityOfSolitude.class)); cards.add(new SetCardInfo("Cloud Elemental", 29, Rarity.COMMON, mage.cards.c.CloudElemental.class)); @@ -102,6 +103,7 @@ public class Visions extends ExpansionSet { cards.add(new SetCardInfo("Inspiration", 35, Rarity.COMMON, mage.cards.i.Inspiration.class)); cards.add(new SetCardInfo("Jamuraan Lion", 110, Rarity.COMMON, mage.cards.j.JamuraanLion.class)); cards.add(new SetCardInfo("Jungle Basin", 164, Rarity.UNCOMMON, mage.cards.j.JungleBasin.class)); + cards.add(new SetCardInfo("Kaervek's Spite", 13, Rarity.RARE, mage.cards.k.KaerveksSpite.class)); cards.add(new SetCardInfo("Karoo", 165, Rarity.UNCOMMON, mage.cards.k.Karoo.class)); cards.add(new SetCardInfo("Keeper of Kookus", 85, Rarity.COMMON, mage.cards.k.KeeperOfKookus.class)); cards.add(new SetCardInfo("King Cheetah", 60, Rarity.COMMON, mage.cards.k.KingCheetah.class)); @@ -167,12 +169,14 @@ public class Visions extends ExpansionSet { cards.add(new SetCardInfo("Vampiric Tutor", 22, Rarity.RARE, mage.cards.v.VampiricTutor.class)); cards.add(new SetCardInfo("Vanishing", 48, Rarity.COMMON, mage.cards.v.Vanishing.class)); cards.add(new SetCardInfo("Viashino Sandstalker", 100, Rarity.UNCOMMON, mage.cards.v.ViashinoSandstalker.class)); + cards.add(new SetCardInfo("Viashivan Dragon", 140, Rarity.RARE, mage.cards.v.ViashivanDragon.class)); cards.add(new SetCardInfo("Vision Charm", 49, Rarity.COMMON, mage.cards.v.VisionCharm.class)); cards.add(new SetCardInfo("Wake of Vultures", 24, Rarity.COMMON, mage.cards.w.WakeOfVultures.class)); cards.add(new SetCardInfo("Wand of Denial", 159, Rarity.RARE, mage.cards.w.WandOfDenial.class)); cards.add(new SetCardInfo("Warrior's Honor", 124, Rarity.COMMON, mage.cards.w.WarriorsHonor.class)); cards.add(new SetCardInfo("Warthog", 74, Rarity.COMMON, mage.cards.w.Warthog.class)); cards.add(new SetCardInfo("Waterspout Djinn", 50, Rarity.UNCOMMON, mage.cards.w.WaterspoutDjinn.class)); + cards.add(new SetCardInfo("Wicked Reward", 25, Rarity.COMMON, mage.cards.w.WickedReward.class)); cards.add(new SetCardInfo("Zhalfirin Crusader", 125, Rarity.RARE, mage.cards.z.ZhalfirinCrusader.class)); } }