[WOE] Implement Virtue of Persistence (#10859)

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
This commit is contained in:
Susucre 2023-08-18 15:30:46 +02:00 committed by GitHub
parent 1fac4639bb
commit cf10da8044
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 0 deletions

View file

@ -0,0 +1,52 @@
package mage.cards.v;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.AdventureCard;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.filter.FilterCard;
import mage.filter.common.FilterCreatureCard;
import mage.target.common.TargetCardInGraveyard;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author Susucr
*/
public final class VirtueOfPersistence extends AdventureCard {
private static final FilterCard filter = new FilterCreatureCard("creature card from a graveyard");
public VirtueOfPersistence(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, new CardType[]{CardType.SORCERY}, "{5}{B}{B}", "Locthwain Scorn", "{1}{B}");
// At the beginning of your upkeep, put target creature card from a graveyard onto the battlefield under your control.
Ability ability = new BeginningOfUpkeepTriggeredAbility(
new ReturnFromGraveyardToBattlefieldTargetEffect(), TargetController.YOU, false
);
ability.addTarget(new TargetCardInGraveyard(filter));
this.addAbility(ability);
// Locthwain Scorn
// Target creature gets -3/-3 until end of turn. You gain 2 life.
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(-3, -3, Duration.EndOfTurn));
this.getSpellCard().getSpellAbility().addEffect(new GainLifeEffect(2));
}
private VirtueOfPersistence(final VirtueOfPersistence card) {
super(card);
}
@Override
public VirtueOfPersistence copy() {
return new VirtueOfPersistence(this);
}
}

View file

@ -89,6 +89,7 @@ public final class WildsOfEldraine extends ExpansionSet {
cards.add(new SetCardInfo("Troublemaker Ouphe", 194, Rarity.COMMON, mage.cards.t.TroublemakerOuphe.class));
cards.add(new SetCardInfo("Troyan, Gutsy Explorer", 217, Rarity.UNCOMMON, mage.cards.t.TroyanGutsyExplorer.class));
cards.add(new SetCardInfo("Twisted Fealty", 154, Rarity.UNCOMMON, mage.cards.t.TwistedFealty.class));
cards.add(new SetCardInfo("Virtue of Persistence", 115, Rarity.MYTHIC, mage.cards.v.VirtueOfPersistence.class));
cards.add(new SetCardInfo("Virtue of Knowledge", 76, Rarity.MYTHIC, mage.cards.v.VirtueOfKnowledge.class));
cards.add(new SetCardInfo("Warehouse Tabby", 117, Rarity.COMMON, mage.cards.w.WarehouseTabby.class));
}