[FDN] Implement Soulstone Sanctuary

This commit is contained in:
ciaccona007 2024-11-04 16:10:37 -05:00
parent 80bdc4f232
commit 92ab917f42
2 changed files with 69 additions and 0 deletions

View file

@ -0,0 +1,68 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.game.permanent.token.TokenImpl;
import java.util.UUID;
/**
*
* @author ciaccona007
*/
public final class SoulstoneSanctuary extends CardImpl {
public SoulstoneSanctuary(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {4}: This land becomes a 3/3 creature with vigilance and all creature types. It's still a land.
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new BecomesCreatureSourceEffect(new SoulStoneSanctuaryToken(), CardType.LAND, Duration.WhileOnBattlefield)
.setText("this land becomes a 3/3 creature with vigilance and all creature types. It's still a land"),
new GenericManaCost(4)
));
}
private SoulstoneSanctuary(final SoulstoneSanctuary card) {
super(card);
}
@Override
public SoulstoneSanctuary copy() {
return new SoulstoneSanctuary(this);
}
}
class SoulStoneSanctuaryToken extends TokenImpl {
public SoulStoneSanctuaryToken() {
super("", "3/3 creature with vigilance and all creature types");
cardType.add(CardType.CREATURE);
subtype.setIsAllCreatureTypes(true);
power = new MageInt(3);
toughness = new MageInt(3);
this.addAbility(VigilanceAbility.getInstance());
}
private SoulStoneSanctuaryToken(final SoulStoneSanctuaryToken token) {
super(token);
}
public SoulStoneSanctuaryToken copy() {
return new SoulStoneSanctuaryToken(this);
}
}

View file

@ -433,6 +433,7 @@ public final class Foundations extends ExpansionSet {
cards.add(new SetCardInfo("Sorcerous Spyglass", 679, Rarity.UNCOMMON, mage.cards.s.SorcerousSpyglass.class));
cards.add(new SetCardInfo("Soul-Guide Lantern", 680, Rarity.UNCOMMON, mage.cards.s.SoulGuideLantern.class));
cards.add(new SetCardInfo("Soul-Shackled Zombie", 70, Rarity.COMMON, mage.cards.s.SoulShackledZombie.class));
cards.add(new SetCardInfo("Soulstone Sanctuary", 133, Rarity.RARE, mage.cards.s.SoulstoneSanctuary.class));
cards.add(new SetCardInfo("Sower of Chaos", 95, Rarity.COMMON, mage.cards.s.SowerOfChaos.class));
cards.add(new SetCardInfo("Spectral Sailor", 164, Rarity.UNCOMMON, mage.cards.s.SpectralSailor.class));
cards.add(new SetCardInfo("Sphinx of the Final Word", 597, Rarity.MYTHIC, mage.cards.s.SphinxOfTheFinalWord.class));