diff --git a/Mage.Sets/src/mage/cards/b/BountyOfMight.java b/Mage.Sets/src/mage/cards/b/BountyOfMight.java new file mode 100644 index 0000000000..2748700955 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BountyOfMight.java @@ -0,0 +1,49 @@ + +package mage.cards.b; + +import java.util.UUID; +import mage.abilities.effects.Effect; +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.filter.common.FilterCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; +import mage.target.targetpointer.SecondTargetPointer; +import mage.target.targetpointer.ThirdTargetPointer; + +/** + * + * @author Ryan-Saklad + */ + +public final class BountyOfMight extends CardImpl { + + public BountyOfMight(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{G}{G}"); + + // Target creature gets +3/+3 until end of turn. + this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("creature (1st)"))); + // Target creature gets +3/+3 until end of turn. + Effect effect = new BoostTargetEffect(3, 3, Duration.EndOfTurn).setText("
Target creature gets +3/+3 until end of turn."); + effect.setTargetPointer(new SecondTargetPointer()); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("creature (2nd)"))); + // Target creature gets +3/+3 until end of turn. + effect = new BoostTargetEffect(3, 3, Duration.EndOfTurn).setText("
Target creature gets +3/+3 until end of turn."); + effect.setTargetPointer(new ThirdTargetPointer()); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("creature (3rd)"))); + } + + public BountyOfMight(final BountyOfMight card) { + super(card); + } + + @Override + public BountyOfMight copy() { + return new BountyOfMight(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CandlelightVigil.java b/Mage.Sets/src/mage/cards/c/CandlelightVigil.java new file mode 100644 index 0000000000..5630faa6cf --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CandlelightVigil.java @@ -0,0 +1,62 @@ + +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Ryan-Saklad + */ + +public final class Candlelight Vigil extends CardImpl { + + public Candlelight Vigil(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}"); + this.subtype.add(SubType.AURA); + + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature gets +3/+2 and has vigilance. + Effect effect = new BoostEnchantedEffect(3, 2, Duration.WhileOnBattlefield); + effect.setText("Enchanted creature gets +3/+2"); + SimpleStaticAbility ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); + effect = new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.AURA); + effect.setText("and has vigilance"); + ability2.addEffect(effect); + this.addAbility(ability2); + + } + + public Candlelight Vigil(final Candlelight Vigil card) { + super(card); + } + + @Override + public Candlelight Vigil copy() { + return new Candlelight Vigil(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/c/CollarTheCulprit.java b/Mage.Sets/src/mage/cards/c/CollarTheCulprit.java new file mode 100644 index 0000000000..0551082ab3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CollarTheCulprit.java @@ -0,0 +1,42 @@ + +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.ToughnessPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * @author Ryan-Saklad + */ + +public final class CollarTheCulprit extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 4 or greater"); + + static { + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); + } + + public CollarTheCulprit(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{W}"); + + // Destroy target creature with toughness 4 or greater. + this.getSpellAbility().addEffect(new DestroyTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); + } + + public CollarTheCulprit(final CollarTheCulprit card) { + super(card); + } + + @Override + public CollarTheCulprit copy() { + return new CollarTheCulprit(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/c/CrushContraband.java b/Mage.Sets/src/mage/cards/c/CrushContraband.java new file mode 100644 index 0000000000..6cbe26f8db --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CrushContraband.java @@ -0,0 +1,45 @@ + +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Mode; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetArtifactPermanent; +import mage.target.common.TargetEnchantmentPermanent; + +/** + * + * @author Ryan-Saklad + */ + +public final class CrushContraband extends CardImpl { + + public CrushContraband(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{W}"); + + // Choose one or both - Destroy target artifact; or Destroy target land. + this.getSpellAbility().getModes().setMinModes(1); + this.getSpellAbility().getModes().setMaxModes(2); + + this.getSpellAbility().addTarget(new TargetArtifactPermanent()); + this.getSpellAbility().addEffect(new ExileTargetEffect()); + + Mode mode1 = new Mode(); + mode1.getTargets().add(new TargetEnchantmentPermanent()); + mode1.getEffects().add(new ExileTargetEffect()); + this.getSpellAbility().addMode(mode1); + + } + + public CrushContraband(final CrushContraband card) { + super(card); + } + + @Override + public CrushContraband copy() { + return new CrushContraband(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/d/Demotion.java b/Mage.Sets/src/mage/cards/d/Demotion.java new file mode 100644 index 0000000000..c3634273b8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/Demotion.java @@ -0,0 +1,51 @@ + +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.combat.CantBlockActivateAttachedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.DefenderAbility; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Ryan-Saklad + */ + +public final class Demotion extends CardImpl { + + public Demotion(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}"); + this.subtype.add(SubType.AURA); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature can't block, and its activated abilities can't be activated. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockActivateAttachedEffect())); + + } + + public Demotion(final Demotion card) { + super(card); + } + + @Override + public Demotion copy() { + return new Demotion(this); + } +} \ No newline at end of file