diff --git a/Mage.Sets/src/mage/cards/a/AnnexSentry.java b/Mage.Sets/src/mage/cards/a/AnnexSentry.java new file mode 100644 index 00000000000..56042a62978 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AnnexSentry.java @@ -0,0 +1,65 @@ +package mage.cards.a; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.ExileUntilSourceLeavesEffect; +import mage.abilities.keyword.ToxicAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.SubType; +import mage.constants.TargetController; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ManaValuePredicate; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * + * @author AhmadYProjects + */ +public final class AnnexSentry extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("artifact or creature an opponent controls with cmc 3 or less"); + + static { + filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN,4)); + filter.add(Predicates.or + (CardType.ARTIFACT.getPredicate(), + CardType.CREATURE.getPredicate())); + filter.add(TargetController.OPPONENT.getControllerPredicate()); + } + + public AnnexSentry(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}{W}"); + + this.subtype.add(SubType.PHYREXIAN); + this.subtype.add(SubType.CLERIC); + this.power = new MageInt(1); + this.toughness = new MageInt(4); + + // Toxic 1 + this.addAbility(new ToxicAbility(1)); + + // When Annex Sentry enters the battlefield, exile target artifact or creature an opponent controls with mana value 3 or less until Annex Sentry leaves the battlefield. + Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect()); + ability.addTarget(new TargetPermanent(filter)); + ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility())); + this.addAbility(ability); + } + + private AnnexSentry(final AnnexSentry card) { + super(card); + } + + @Override + public AnnexSentry copy() { + return new AnnexSentry(this); + } +} diff --git a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java index f83823228b8..5f696523d19 100644 --- a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java +++ b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java @@ -20,6 +20,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet { this.blockName = "Phyrexia: All Will Be One"; this.hasBoosters = false; // temporary + cards.add(new SetCardInfo("Annex Sentry", 2, Rarity.UNCOMMON, mage.cards.a.AnnexSentry.class)); cards.add(new SetCardInfo("Anoint with Affliction", 81, Rarity.COMMON, mage.cards.a.AnointWithAffliction.class)); cards.add(new SetCardInfo("Apostle of Invasion", 3, Rarity.UNCOMMON, mage.cards.a.ApostleOfInvasion.class)); cards.add(new SetCardInfo("Archfiend of the Dross", 82, Rarity.RARE, mage.cards.a.ArchfiendOfTheDross.class));