[SPM] Implement Wall Crawl

This commit is contained in:
theelk801 2025-09-05 18:10:01 -04:00
parent 7df7286a27
commit 988c661ccf
2 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,61 @@
package mage.cards.w;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.combat.CantBeBlockedAllEffect;
import mage.abilities.effects.common.continuous.BoostAllEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.game.permanent.token.Spider21Token;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class WallCrawl extends CardImpl {
private static final FilterControlledCreaturePermanent filter
= new FilterControlledCreaturePermanent(SubType.SPIDER, "Spiders you control");
private static final DynamicValue xValue
= new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.SPIDER));
private static final Hint hint = new ValueHint("Spiders you control", xValue);
public WallCrawl(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}");
// When this enchantment enters, create a 2/1 green Spider creature token with reach, then you gain 1 life for each Spider you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new Spider21Token()));
ability.addEffect(new GainLifeEffect(xValue).concatBy(", then"));
this.addAbility(ability.addHint(hint));
// Spiders you control get +1/+1 and can't be blocked by creatures with defender.
ability = new SimpleStaticAbility(new BoostAllEffect(
1, 1, Duration.WhileControlled, filter, false
));
ability.addEffect(new CantBeBlockedAllEffect(filter, Duration.WhileControlled)
.setText("and can't be blocked by creatures with defender"));
this.addAbility(ability);
}
private WallCrawl(final WallCrawl card) {
super(card);
}
@Override
public WallCrawl copy() {
return new WallCrawl(this);
}
}

View file

@ -281,6 +281,7 @@ public final class MarvelsSpiderMan extends ExpansionSet {
cards.add(new SetCardInfo("Venomized Cat", 72, Rarity.COMMON, mage.cards.v.VenomizedCat.class));
cards.add(new SetCardInfo("Vibrant Cityscape", 188, Rarity.COMMON, mage.cards.v.VibrantCityscape.class));
cards.add(new SetCardInfo("Vulture, Scheming Scavenger", 158, Rarity.UNCOMMON, mage.cards.v.VultureSchemingScavenger.class));
cards.add(new SetCardInfo("Wall Crawl", 121, Rarity.UNCOMMON, mage.cards.w.WallCrawl.class));
cards.add(new SetCardInfo("Web Up", 21, Rarity.COMMON, mage.cards.w.WebUp.class));
cards.add(new SetCardInfo("Web of Life and Destiny", 122, Rarity.MYTHIC, mage.cards.w.WebOfLifeAndDestiny.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Web of Life and Destiny", 268, Rarity.MYTHIC, mage.cards.w.WebOfLifeAndDestiny.class, NON_FULL_USE_VARIOUS));