[SPM] implement Secret Identity

This commit is contained in:
jmlundeen 2025-09-05 10:20:51 -05:00
parent d5fa369e4d
commit f663f5e002
2 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,61 @@
package mage.cards.s;
import mage.abilities.Mode;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HexproofAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/**
*
* @author Jmlundeen
*/
public final class SecretIdentity extends CardImpl {
public SecretIdentity(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}");
// Choose one --
this.getSpellAbility().getModes().setMinModes(1);
this.getSpellAbility().getModes().setMaxModes(1);
// * Conceal -- Until end of turn, target creature you control becomes a Citizen with base power and toughness 1/1 and gains hexproof.
this.getSpellAbility().addEffect(new BecomesCreatureTargetEffect(
new CreatureToken(1, 1, "Citizen with base power and toughness 1/1 and gains hexproof")
.withSubType(SubType.CITIZEN)
.withAbility(HexproofAbility.getInstance()),
false, false, Duration.EndOfTurn)
);
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().withFirstModeFlavorWord("Conceal");
// * Reveal -- Until end of turn, target creature you control becomes a Hero with base power and toughness 3/4 and gains flying and vigilance.
Mode mode = new Mode(new BecomesCreatureTargetEffect(
new CreatureToken(3, 4, "Hero with base power and toughness 3/4 and gains flying and vigilance")
.withSubType(SubType.HERO)
.withAbility(FlyingAbility.getInstance())
.withAbility(VigilanceAbility.getInstance()),
false, false, Duration.EndOfTurn));
mode.withFlavorWord("Reveal");
mode.addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addMode(mode);
}
private SecretIdentity(final SecretIdentity card) {
super(card);
}
@Override
public SecretIdentity copy() {
return new SecretIdentity(this);
}
}

View file

@ -187,6 +187,7 @@ public final class MarvelsSpiderMan extends ExpansionSet {
cards.add(new SetCardInfo("Scorpion's Sting", 65, Rarity.COMMON, mage.cards.s.ScorpionsSting.class));
cards.add(new SetCardInfo("Scorpion, Seething Striker", 64, Rarity.UNCOMMON, mage.cards.s.ScorpionSeethingStriker.class));
cards.add(new SetCardInfo("Scout the City", 113, Rarity.COMMON, mage.cards.s.ScoutTheCity.class));
cards.add(new SetCardInfo("Secret Identity", 43, Rarity.UNCOMMON, mage.cards.s.SecretIdentity.class));
cards.add(new SetCardInfo("Selfless Police Captain", 12, Rarity.COMMON, mage.cards.s.SelflessPoliceCaptain.class));
cards.add(new SetCardInfo("Shock", 88, Rarity.COMMON, mage.cards.s.Shock.class));
cards.add(new SetCardInfo("Shocker, Unshakable", 89, Rarity.UNCOMMON, mage.cards.s.ShockerUnshakable.class));