[SPM] implement Gwen Stacy

This commit is contained in:
jmlundeen 2025-08-31 08:45:58 -05:00
parent e65e67c125
commit ef249d1ada
2 changed files with 73 additions and 0 deletions

View file

@ -0,0 +1,70 @@
package mage.cards.g;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.ControllerPlaysLandTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.ExileTopXMayPlayUntilEffect;
import mage.abilities.effects.common.TransformSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardSetInfo;
import mage.cards.ModalDoubleFacedCard;
import mage.constants.*;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author Jmlundeen
*/
public final class GwenStacy extends ModalDoubleFacedCard {
public GwenStacy(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo,
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.PERFORMER, SubType.HERO}, "{1}{R}",
"Ghost-Spider",
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.SPIDER, SubType.HUMAN, SubType.HERO}, "{2}{U}{R}{W}");
this.getLeftHalfCard().setPT(2, 1);
this.getRightHalfCard().setPT(4, 4);
// When Gwen Stacy enters, exile the top card of your library. You may play that card for as long as you control this creature.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ExileTopXMayPlayUntilEffect(1, Duration.WhileControlled)
.withTextOptions("that card", true)));
// {2}{U}{R}{W}: Transform Gwen Stacy. Activate only as a sorcery.
this.addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{2}{U}{R}{W}")));
// Ghost-Spider
// Flying
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
// Vigilance
this.getRightHalfCard().addAbility(VigilanceAbility.getInstance());
// Haste
this.getRightHalfCard().addAbility(HasteAbility.getInstance());
// Whenever you play a land from exile or cast a spell from exile, put a +1/+1 counter on Ghost-Spider.
this.getRightHalfCard().addAbility(new ControllerPlaysLandTriggeredAbility(Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false));
// Remove two counters from Ghost-Spider: Exile the top card of your library. You may play that card this turn.
this.getRightHalfCard().addAbility(new SimpleActivatedAbility(
new ExileTopXMayPlayUntilEffect(1, Duration.EndOfTurn),
new RemoveCountersSourceCost(CounterType.P1P1.createInstance(2))));
}
private GwenStacy(final GwenStacy card) {
super(card);
}
@Override
public GwenStacy copy() {
return new GwenStacy(this);
}
}

View file

@ -54,6 +54,9 @@ public final class MarvelsSpiderMan extends ExpansionSet {
cards.add(new SetCardInfo("Green Goblin, Revenant", 130, Rarity.UNCOMMON, mage.cards.g.GreenGoblinRevenant.class));
cards.add(new SetCardInfo("Grow Extra Arms", 101, Rarity.COMMON, mage.cards.g.GrowExtraArms.class));
cards.add(new SetCardInfo("Guy in the Chair", 102, Rarity.COMMON, mage.cards.g.GuyInTheChair.class));
cards.add(new SetCardInfo("Gwen Stacy", 202, Rarity.MYTHIC, mage.cards.g.GwenStacy.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Gwen Stacy", 209, Rarity.MYTHIC, mage.cards.g.GwenStacy.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Gwen Stacy", 78, Rarity.MYTHIC, mage.cards.g.GwenStacy.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Gwenom, Remorseless", 256, Rarity.MYTHIC, mage.cards.g.GwenomRemorseless.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Gwenom, Remorseless", 286, Rarity.MYTHIC, mage.cards.g.GwenomRemorseless.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Gwenom, Remorseless", 56, Rarity.MYTHIC, mage.cards.g.GwenomRemorseless.class, NON_FULL_USE_VARIOUS));