From a37f4af207079b152a7cf9576b5187fdee8a95d9 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 16 Sep 2022 07:07:56 -0400 Subject: [PATCH] [40K] Implemented Canoptek Spyder --- .../src/mage/cards/c/CanoptekSpyder.java | 62 +++++++++++++++++++ Mage.Sets/src/mage/sets/Warhammer40000.java | 1 + 2 files changed, 63 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CanoptekSpyder.java diff --git a/Mage.Sets/src/mage/cards/c/CanoptekSpyder.java b/Mage.Sets/src/mage/cards/c/CanoptekSpyder.java new file mode 100644 index 0000000000..505e4a2a3b --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CanoptekSpyder.java @@ -0,0 +1,62 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.predicate.permanent.TokenPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CanoptekSpyder extends CardImpl { + + private static final FilterPermanent filter + = new FilterPermanent("another nontoken artifact creature or Vehicle"); + + static { + filter.add(TokenPredicate.FALSE); + filter.add(AnotherPredicate.instance); + filter.add(Predicates.or( + Predicates.and( + CardType.ARTIFACT.getPredicate(), + CardType.CREATURE.getPredicate() + ), + SubType.VEHICLE.getPredicate() + )); + } + + public CanoptekSpyder(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}"); + + this.subtype.add(SubType.SPIDER); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Fabricator Claw Array -- Whenever another nontoken artifact creature or Vehicle enters the battlefield under your control, draw a card. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility( + new DrawCardSourceControllerEffect(1), filter + ).withFlavorWord("Fabricator Claw Array")); + } + + private CanoptekSpyder(final CanoptekSpyder card) { + super(card); + } + + @Override + public CanoptekSpyder copy() { + return new CanoptekSpyder(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Warhammer40000.java b/Mage.Sets/src/mage/sets/Warhammer40000.java index d148c5da96..d38e21ea21 100644 --- a/Mage.Sets/src/mage/sets/Warhammer40000.java +++ b/Mage.Sets/src/mage/sets/Warhammer40000.java @@ -39,6 +39,7 @@ public final class Warhammer40000 extends ExpansionSet { cards.add(new SetCardInfo("Bred for the Hunt", 222, Rarity.UNCOMMON, mage.cards.b.BredForTheHunt.class)); cards.add(new SetCardInfo("Broodlord", 89, Rarity.RARE, mage.cards.b.Broodlord.class)); cards.add(new SetCardInfo("Caged Sun", 231, Rarity.RARE, mage.cards.c.CagedSun.class)); + cards.add(new SetCardInfo("Canoptek Spyder", 151, Rarity.RARE, mage.cards.c.CanoptekSpyder.class)); cards.add(new SetCardInfo("Cave of Temptation", 267, Rarity.COMMON, mage.cards.c.CaveOfTemptation.class)); cards.add(new SetCardInfo("Chaos Defiler", 110, Rarity.RARE, mage.cards.c.ChaosDefiler.class)); cards.add(new SetCardInfo("Chaos Warp", 205, Rarity.RARE, mage.cards.c.ChaosWarp.class));