diff --git a/Mage.Sets/src/mage/cards/s/SpaceMarineDevastator.java b/Mage.Sets/src/mage/cards/s/SpaceMarineDevastator.java new file mode 100644 index 00000000000..a405d023e9d --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SpaceMarineDevastator.java @@ -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); + } +} diff --git a/Mage.Sets/src/mage/cards/v/VanguardSuppressor.java b/Mage.Sets/src/mage/cards/v/VanguardSuppressor.java index 8a4c81cb802..841e59e6542 100644 --- a/Mage.Sets/src/mage/cards/v/VanguardSuppressor.java +++ b/Mage.Sets/src/mage/cards/v/VanguardSuppressor.java @@ -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()); diff --git a/Mage.Sets/src/mage/sets/Warhammer40000.java b/Mage.Sets/src/mage/sets/Warhammer40000.java index 593ace7eaac..b1f4fc2b033 100644 --- a/Mage.Sets/src/mage/sets/Warhammer40000.java +++ b/Mage.Sets/src/mage/sets/Warhammer40000.java @@ -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)); diff --git a/Mage/src/main/java/mage/abilities/keyword/SquadAbility.java b/Mage/src/main/java/mage/abilities/keyword/SquadAbility.java index 27be07c2069..2bd13d8b6b6 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SquadAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SquadAbility.java @@ -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 diff --git a/Utils/keywords.txt b/Utils/keywords.txt index 0951535a044..de114612942 100644 --- a/Utils/keywords.txt +++ b/Utils/keywords.txt @@ -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|