From ea84d1f5fe8ab0493cfc55c67f2e938d14ae563f Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 29 Jun 2021 08:48:58 -0400 Subject: [PATCH] [AFR] Implemented Hive of the Eye Tyrant --- .../src/mage/cards/h/HiveOfTheEyeTyrant.java | 78 +++++++++++++++++++ .../sets/AdventuresInTheForgottenRealms.java | 1 + .../src/main/java/mage/constants/SubType.java | 1 + Utils/mtg-cards-data.txt | 1 + 4 files changed, 81 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java diff --git a/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java b/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java new file mode 100644 index 0000000000..52dcbca592 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java @@ -0,0 +1,78 @@ +package mage.cards.h; + +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.effects.common.TapSourceEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.abilities.mana.BlackManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.filter.StaticFilters; +import mage.filter.predicate.card.DefendingPlayerOwnsCardPredicate; +import mage.game.permanent.token.custom.CreatureToken; +import mage.target.common.TargetCardInGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HiveOfTheEyeTyrant extends CardImpl { + + private static final Condition condition = new PermanentsOnTheBattlefieldCondition( + StaticFilters.FILTER_LAND, ComparisonType.MORE_THAN, 1 + ); + private static final FilterCard filter = new FilterCard("card from defending player's graveyard"); + + static { + filter.add(DefendingPlayerOwnsCardPredicate.instance); + } + + public HiveOfTheEyeTyrant(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // If you control two or more other lands, Hive of the Eye Tyrant enters the battlefield tapped. + this.addAbility(new EntersBattlefieldAbility( + new TapSourceEffect(), condition, "If you control two or more other lands, " + + "{this} enters the battlefield tapped.", "" + )); + + // {T}: Add {B}. + this.addAbility(new BlackManaAbility()); + + // {3}{B}: Until end of turn, Hive of the Eye Tyrant becomes a 3/3 black Beholder creature with menace and "Whenever this creature attacks, exile target card from defending player's graveyard." It's still a land. + Ability ability = new AttacksTriggeredAbility( + new ExileTargetEffect(), false, + "Whenever this creature attacks, exile target card from defending player's graveyard." + ); + ability.addTarget(new TargetCardInGraveyard(filter)); + this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( + new CreatureToken( + 3, 3, "3/3 black Beholder creature with menace and " + + "\"Whenever this creature attacks, exile target card from defending player's graveyard.\"" + ).withSubType(SubType.BEHOLDER).withColor("B").withAbility(new MenaceAbility()).withAbility(ability), + "land", Duration.EndOfTurn + ), new ManaCostsImpl<>("{3}{B}"))); + } + + private HiveOfTheEyeTyrant(final HiveOfTheEyeTyrant card) { + super(card); + } + + @Override + public HiveOfTheEyeTyrant copy() { + return new HiveOfTheEyeTyrant(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AdventuresInTheForgottenRealms.java b/Mage.Sets/src/mage/sets/AdventuresInTheForgottenRealms.java index 3726e4303f..c81957e615 100644 --- a/Mage.Sets/src/mage/sets/AdventuresInTheForgottenRealms.java +++ b/Mage.Sets/src/mage/sets/AdventuresInTheForgottenRealms.java @@ -34,6 +34,7 @@ public final class AdventuresInTheForgottenRealms extends ExpansionSet { cards.add(new SetCardInfo("Flumph", 15, Rarity.RARE, mage.cards.f.Flumph.class)); cards.add(new SetCardInfo("Forest", 278, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Gloom Stalker", 16, Rarity.COMMON, mage.cards.g.GloomStalker.class)); + cards.add(new SetCardInfo("Hive of the Eye Tyrant", 258, Rarity.RARE, mage.cards.h.HiveOfTheEyeTyrant.class)); cards.add(new SetCardInfo("Island", 266, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Lolth, Spider Queen", 112, Rarity.MYTHIC, mage.cards.l.LolthSpiderQueen.class)); cards.add(new SetCardInfo("Mountain", 274, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); diff --git a/Mage/src/main/java/mage/constants/SubType.java b/Mage/src/main/java/mage/constants/SubType.java index 39c1ee75a7..a1cab3d391 100644 --- a/Mage/src/main/java/mage/constants/SubType.java +++ b/Mage/src/main/java/mage/constants/SubType.java @@ -78,6 +78,7 @@ public enum SubType { BEAR("Bear", SubTypeSet.CreatureType), BEAST("Beast", SubTypeSet.CreatureType), BEEBLE("Beeble", SubTypeSet.CreatureType), + BEHOLDER("Beholder", SubTypeSet.CreatureType), BERSERKER("Berserker", SubTypeSet.CreatureType), BIRD("Bird", SubTypeSet.CreatureType), BITH("Bith", SubTypeSet.CreatureType, true), // Star Wars diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index a6444384ca..07bf99fc65 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -41336,6 +41336,7 @@ Prosperous Innkeeper|Adventures in the Forgotten Realms|200|U|{1}{G}|Creature - Bruenor Battlehammer|Adventures in the Forgotten Realms|219|U|{2}{R}{W}|Legendary Creature - Dwarf Warrior|5|3|Each creature you control gets +2/+0 for each Equipment attached to it.$You may pay {0} rather than pay the equip cost of the first equip ability you activate each turn.| Drizzt Do'Urden|Adventures in the Forgotten Realms|220|R|{3}{G}{W}|Legendary Creature - Elf Ranger|3|3|Double strike$When Drizzt Do'Urden enters the battlefield, create Guenhwyvar, a legendary 4/1 green Cat creature token with trample.$Whenever a creature dies, if it had power greater than Drizzt's power, put a number of +1/+1 counters on Drizzt equal to the difference.| Tiamat|Adventures in the Forgotten Realms|235|M|{2}{W}{U}{B}{R}{G}|Legendary Creature - Dragon God|7|7|Flying$When Tiamat enters the battlefield, if you cast it, search your library for up to five Dragon cards not named Tiamat that each have different names, reveal them, put them into your hand, then shuffle.| +Hive of the Eye Tyrant|Adventures in the Forgotten Realms|258|R||Land|||If you control two or more other lands, Hive of the Eye Tyrant enters the battlefield tapped.${T}: Add {B}.${3}{B}: Until end of turn, Hive of the Eye Tyrant becomes a 3/3 black Beholder creature with menace and "Whenever this creature attacks, exile target card from defending player's graveyard." It's still a land.| Plains|Adventures in the Forgotten Realms|262|C||Basic Land - Plains|||({T}: Add {W}.)| Island|Adventures in the Forgotten Realms|266|C||Basic Land - Island|||({T}: Add {U}.)| Swamp|Adventures in the Forgotten Realms|270|C||Basic Land - Swamp|||({T}: Add {B}.)|