diff --git a/Mage.Sets/src/mage/cards/t/ThrummingHivepool.java b/Mage.Sets/src/mage/cards/t/ThrummingHivepool.java new file mode 100644 index 00000000000..30b6f50133e --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThrummingHivepool.java @@ -0,0 +1,57 @@ +package mage.cards.t; + +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.AffinityAbility; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AffinityType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.game.permanent.token.SliverToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ThrummingHivepool extends CardImpl { + + private static final FilterPermanent filter = new FilterControlledPermanent(SubType.SLIVER, "Slivers"); + + public ThrummingHivepool(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}"); + + // Affinity for Slivers + this.addAbility(new AffinityAbility(AffinityType.SLIVERS)); + + // Slivers you control have double strike and haste. + Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect( + DoubleStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter + )); + ability.addEffect(new GainAbilityControlledEffect( + HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter + ).setText("and haste")); + this.addAbility(ability); + + // At the beginning of your upkeep, create two 1/1 colorless Sliver creature tokens. + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new SliverToken(), 2))); + } + + private ThrummingHivepool(final ThrummingHivepool card) { + super(card); + } + + @Override + public ThrummingHivepool copy() { + return new ThrummingHivepool(this); + } +} diff --git a/Mage.Sets/src/mage/sets/EdgeOfEternities.java b/Mage.Sets/src/mage/sets/EdgeOfEternities.java index 5b1b02648b1..55fec2ec804 100644 --- a/Mage.Sets/src/mage/sets/EdgeOfEternities.java +++ b/Mage.Sets/src/mage/sets/EdgeOfEternities.java @@ -65,6 +65,8 @@ public final class EdgeOfEternities extends ExpansionSet { cards.add(new SetCardInfo("Temporal Intervention", 120, Rarity.COMMON, mage.cards.t.TemporalIntervention.class)); cards.add(new SetCardInfo("Tezzeret, Cruel Captain", 2, Rarity.MYTHIC, mage.cards.t.TezzeretCruelCaptain.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Tezzeret, Cruel Captain", 287, Rarity.MYTHIC, mage.cards.t.TezzeretCruelCaptain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Thrumming Hivepool", 247, Rarity.RARE, mage.cards.t.ThrummingHivepool.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Thrumming Hivepool", 356, Rarity.RARE, mage.cards.t.ThrummingHivepool.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Watery Grave", 261, Rarity.RARE, mage.cards.w.WateryGrave.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Watery Grave", 286, Rarity.RARE, mage.cards.w.WateryGrave.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Watery Grave", 381, Rarity.RARE, mage.cards.w.WateryGrave.class, NON_FULL_USE_VARIOUS)); diff --git a/Mage/src/main/java/mage/constants/AffinityType.java b/Mage/src/main/java/mage/constants/AffinityType.java index a49fe5f9bfc..de6fb741683 100644 --- a/Mage/src/main/java/mage/constants/AffinityType.java +++ b/Mage/src/main/java/mage/constants/AffinityType.java @@ -41,6 +41,7 @@ public enum AffinityType { LIZARDS(new FilterControlledPermanent(SubType.LIZARD, "Lizards")), BIRDS(new FilterControlledPermanent(SubType.BIRD, "Birds")), CITIZENS(new FilterControlledPermanent(SubType.CITIZEN, "Citizens")), + SLIVERS(new FilterControlledPermanent(SubType.SLIVER, "Slivers")), TOWNS(new FilterControlledPermanent(SubType.TOWN, "Towns")), GATES(new FilterControlledPermanent(SubType.GATE, "Gates"), GatesYouControlHint.instance), SNOW_LANDS(AffinityFilters.SNOW_LANDS),