diff --git a/Mage.Sets/src/mage/cards/a/AgainstAllOdds.java b/Mage.Sets/src/mage/cards/a/AgainstAllOdds.java new file mode 100644 index 00000000000..cbe0bea6b81 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AgainstAllOdds.java @@ -0,0 +1,67 @@ +package mage.cards.a; + +import mage.abilities.Mode; +import mage.abilities.effects.common.ExileTargetForSourceEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.filter.FilterCard; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ManaValuePredicate; +import mage.target.common.TargetCardInYourGraveyard; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; + +/** + * + * @author AhmadYProjects + */ +public final class AgainstAllOdds extends CardImpl { + private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifact or creature card you control"); + private static final FilterCard filter2 = new FilterCard("artifact or creature card with mana value 3 or less from your graveyard"); + + static{ + filter.add(Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.ARTIFACT.getPredicate() + )); + filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 4)); + filter2.add(new ManaValuePredicate(ComparisonType.FEWER_THAN,4)); + filter2.add(Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.ARTIFACT.getPredicate() + )); + + } + public AgainstAllOdds(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}"); + + + // Choose one or both -- + this.getSpellAbility().getModes().setMinModes(1); + this.getSpellAbility().getModes().setMaxModes(2); + // * Exile target artifact or creature you control, then return it to the battlefield under its owner's control. + this.getSpellAbility().addTarget(new TargetControlledPermanent(filter)); + this.getSpellAbility().addEffect(new ExileTargetForSourceEffect()); + this.getSpellAbility().addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, + false,"it").concatBy(", then")); + // * Return target artifact or creature card with mana value 3 or less from your graveyard to the battlefield. + Mode mode2 = new Mode(new ReturnFromGraveyardToBattlefieldTargetEffect()); + mode2.addTarget(new TargetCardInYourGraveyard(filter2)); + this.getSpellAbility().addMode(mode2); + } + + private AgainstAllOdds(final AgainstAllOdds card) { + super(card); + } + + @Override + public AgainstAllOdds copy() { + return new AgainstAllOdds(this); + } +} diff --git a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java index 5ee9b5ad79e..7b5e480ec27 100644 --- a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java +++ b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java @@ -21,6 +21,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet { this.hasBoosters = false; // temporary cards.add(new SetCardInfo("Adaptive Sporesinger", 157, Rarity.COMMON, mage.cards.a.AdaptiveSporesinger.class)); + cards.add(new SetCardInfo("Against All Odds", 1, Rarity.UNCOMMON, mage.cards.a.AgainstAllOdds.class)); cards.add(new SetCardInfo("All Will Be One", 118, Rarity.MYTHIC, mage.cards.a.AllWillBeOne.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("All Will Be One", 352, Rarity.MYTHIC, mage.cards.a.AllWillBeOne.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ambulatory Edifice", 79, Rarity.UNCOMMON, mage.cards.a.AmbulatoryEdifice.class));