[40K] Implemented Space Marine Devastator

This commit is contained in:
Evan Kranzler 2022-09-17 10:50:43 -04:00
parent 630a9c4445
commit 2ca7cfa462
5 changed files with 57 additions and 3 deletions

View file

@ -0,0 +1,49 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.SquadAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SpaceMarineDevastator extends CardImpl {
public SpaceMarineDevastator(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");
this.subtype.add(SubType.ASTARTES);
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Squad {2}
this.addAbility(new SquadAbility());
// Grav-cannon -- When Space Marine Devastator enters the battlefield, destroy up to one target artifact or enchantment.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
ability.addTarget(new TargetPermanent(
0, 1, StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT
));
this.addAbility(ability.withFlavorWord("Grav-cannon"));
}
private SpaceMarineDevastator(final SpaceMarineDevastator card) {
super(card);
}
@Override
public SpaceMarineDevastator copy() {
return new SpaceMarineDevastator(this);
}
}

View file

@ -2,7 +2,6 @@ package mage.cards.v;
import mage.MageInt;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.SquadAbility;
@ -27,7 +26,7 @@ public final class VanguardSuppressor extends CardImpl {
this.toughness = new MageInt(2);
// Squad {2}
this.addAbility(new SquadAbility(new ManaCostsImpl<>("{2}")));
this.addAbility(new SquadAbility());
// Flying
this.addAbility(FlyingAbility.getInstance());

View file

@ -161,6 +161,7 @@ public final class Warhammer40000 extends ExpansionSet {
cards.add(new SetCardInfo("Skullclamp", 248, Rarity.UNCOMMON, mage.cards.s.Skullclamp.class));
cards.add(new SetCardInfo("Skycloud Expanse", 294, Rarity.RARE, mage.cards.s.SkycloudExpanse.class));
cards.add(new SetCardInfo("Sol Ring", 249, Rarity.UNCOMMON, mage.cards.s.SolRing.class));
cards.add(new SetCardInfo("Space Marine Devastator", 14, Rarity.RARE, mage.cards.s.SpaceMarineDevastator.class));
cards.add(new SetCardInfo("Starstorm", 208, Rarity.RARE, mage.cards.s.Starstorm.class));
cards.add(new SetCardInfo("Sunken Hollow", 295, Rarity.RARE, mage.cards.s.SunkenHollow.class));
cards.add(new SetCardInfo("Swamp", 310, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));

View file

@ -2,6 +2,7 @@ package mage.abilities.keyword;
import mage.abilities.StaticAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.constants.Zone;
/**
@ -9,6 +10,10 @@ import mage.constants.Zone;
*/
public class SquadAbility extends StaticAbility {
public SquadAbility() {
this(new GenericManaCost(2));
}
public SquadAbility(Cost cost) {
super(Zone.STACK, null);
// TODO: implement this

View file

@ -105,7 +105,7 @@ Soulbond|new|
Soulshift|number|
Skulk|new|
Spectacle|card, cost|
Squad|cost|
Squad|new|
Storm|new|
Sunburst|new|
Suspend|number, cost, card|