foul-magics/Mage.Sets/src/mage/cards/s/SealAway.java
2019-01-12 16:30:49 -05:00

55 lines
1.9 KiB
Java

package mage.cards.s;
import java.util.UUID;
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.FlashAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.target.TargetPermanent;
/**
* @author JRHerlehy
* Created on 4/4/18.
*/
public final class SealAway extends CardImpl {
private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature");
static {
filter.add(new ControllerPredicate(TargetController.OPPONENT));
filter.add(TappedPredicate.instance);
}
public SealAway(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}");
//Flash
this.addAbility(FlashAbility.getInstance());
//When Seal Away enters the battlefield, exile target tapped creature an opponent controls until Seal Away leaves the battlefield.
Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect(filter.getMessage()));
ability.addTarget(new TargetPermanent(filter));
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
this.addAbility(ability);
}
public SealAway(final SealAway card) {
super(card);
}
@Override
public SealAway copy() {
return new SealAway(this);
}
}