foul-magics/Mage.Sets/src/mage/cards/a/Afterlife.java
2018-06-02 17:59:49 +02:00

69 lines
2 KiB
Java

package mage.cards.a;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.permanent.token.SpiritWhiteToken;
import mage.target.common.TargetCreaturePermanent;
/**
*
* @author Backfir3
*/
public final class Afterlife extends CardImpl {
public Afterlife(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}");
// Destroy target creature. It can't be regenerated. Its controller puts a
// 1/1 white Spirit creature token with flying.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new DestroyTargetEffect(true));
this.getSpellAbility().addEffect(new AfterlifeEffect());
}
public Afterlife(final Afterlife card) {
super(card);
}
@Override
public Afterlife copy() {
return new Afterlife(this);
}
}
class AfterlifeEffect extends OneShotEffect {
public AfterlifeEffect() {
super(Outcome.PutCreatureInPlay);
staticText = "Its controller creates a 1/1 white Spirit creature token with flying";
}
public AfterlifeEffect(final AfterlifeEffect effect) {
super(effect);
}
@Override
public AfterlifeEffect copy() {
return new AfterlifeEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Permanent permanent = game.getPermanentOrLKIBattlefield(this.getTargetPointer().getFirst(game, source));
if (permanent != null) {
SpiritWhiteToken token = new SpiritWhiteToken();
token.putOntoBattlefield(1, game, source.getSourceId(), permanent.getControllerId());
}
return true;
}
}