From 08fb65f4d201b72db0604e436a888fa27914bf88 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 11 Sep 2018 11:20:29 -0400 Subject: [PATCH] Implemented District Guide --- Mage.Sets/src/mage/cards/d/DistrictGuide.java | 61 +++++++++++++++++++ Mage.Sets/src/mage/sets/GuildsOfRavnica.java | 1 + 2 files changed, 62 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/d/DistrictGuide.java diff --git a/Mage.Sets/src/mage/cards/d/DistrictGuide.java b/Mage.Sets/src/mage/cards/d/DistrictGuide.java new file mode 100644 index 00000000000..aea9713b75e --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DistrictGuide.java @@ -0,0 +1,61 @@ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; +import mage.constants.SubType; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.mageobject.SupertypePredicate; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author TheElk801 + */ +public final class DistrictGuide extends CardImpl { + + private static final FilterCard filter + = new FilterCard("basic land card or Gate card"); + + static { + filter.add(Predicates.or( + Predicates.and( + new CardTypePredicate(CardType.LAND), + new SupertypePredicate(SuperType.BASIC) + ), new SubtypePredicate(SubType.GATE) + )); + } + + public DistrictGuide(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add(SubType.ELF); + this.subtype.add(SubType.SCOUT); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When District Guide enters the battlefield, you may search your library for a basic land card or Gate card, reveal it, put it into your hand, then shuffle your library. + this.addAbility(new EntersBattlefieldTriggeredAbility( + new SearchLibraryPutInHandEffect( + new TargetCardInLibrary(filter), true, true + ), true + )); + } + + public DistrictGuide(final DistrictGuide card) { + super(card); + } + + @Override + public DistrictGuide copy() { + return new DistrictGuide(this); + } +} diff --git a/Mage.Sets/src/mage/sets/GuildsOfRavnica.java b/Mage.Sets/src/mage/sets/GuildsOfRavnica.java index 5c9731e281b..3f672c9ea75 100644 --- a/Mage.Sets/src/mage/sets/GuildsOfRavnica.java +++ b/Mage.Sets/src/mage/sets/GuildsOfRavnica.java @@ -39,6 +39,7 @@ public final class GuildsOfRavnica extends ExpansionSet { cards.add(new SetCardInfo("Dimir Guildgate", 246, Rarity.COMMON, mage.cards.d.DimirGuildgate.class)); cards.add(new SetCardInfo("Dimir Informant", 36, Rarity.COMMON, mage.cards.d.DimirInformant.class)); cards.add(new SetCardInfo("Direct Current", 96, Rarity.COMMON, mage.cards.d.DirectCurrent.class)); + cards.add(new SetCardInfo("District Guide", 128, Rarity.COMMON, mage.cards.d.DistrictGuide.class)); cards.add(new SetCardInfo("Dream Eater", 38, Rarity.MYTHIC, mage.cards.d.DreamEater.class)); cards.add(new SetCardInfo("Emmara, Soul of the Accord", 168, Rarity.RARE, mage.cards.e.EmmaraSoulOfTheAccord.class)); cards.add(new SetCardInfo("Find // Finality", 225, Rarity.RARE, mage.cards.f.FindFinality.class));