From 43f20f40efaa120f2c53b5649ab21b594b7bae99 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 29 Sep 2020 19:46:28 -0400 Subject: [PATCH] [SLD] Implemented Daryl, Hunter of Walkers --- .../mage/cards/d/DarylHunterOfWalkers.java | 73 +++++++++++++++++++ Mage.Sets/src/mage/sets/SecretLairDrop.java | 1 + 2 files changed, 74 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/d/DarylHunterOfWalkers.java diff --git a/Mage.Sets/src/mage/cards/d/DarylHunterOfWalkers.java b/Mage.Sets/src/mage/cards/d/DarylHunterOfWalkers.java new file mode 100644 index 0000000000..148579979e --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DarylHunterOfWalkers.java @@ -0,0 +1,73 @@ +package mage.cards.d; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.common.DiesCreatureTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.CreateTokenTargetEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.filter.FilterPermanent; +import mage.game.permanent.token.WalkerToken; +import mage.target.common.TargetCreaturePermanent; +import mage.target.common.TargetOpponent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class DarylHunterOfWalkers extends CardImpl { + + private static final FilterPermanent filter + = new FilterPermanent(SubType.ZOMBIE, "a Zombie an opponent controls"); + + static { + filter.add(TargetController.OPPONENT.getControllerPredicate()); + } + + public DarylHunterOfWalkers(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{G}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.ARCHER); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // At the beginning of your upkeep, target opponent creates three Walker tokens. + Ability ability = new BeginningOfUpkeepTriggeredAbility( + new CreateTokenTargetEffect(new WalkerToken(), 3), + TargetController.YOU, false + ); + ability.addTarget(new TargetOpponent()); + this.addAbility(ability); + + // {T}: Daryl deals 2 damage to target creature. + ability = new SimpleActivatedAbility(new DamageTargetEffect(2), new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // Whenever a Zombie an opponent controls dies, draw a card. + this.addAbility(new DiesCreatureTriggeredAbility( + new DrawCardSourceControllerEffect(1), false, filter + )); + } + + private DarylHunterOfWalkers(final DarylHunterOfWalkers card) { + super(card); + } + + @Override + public DarylHunterOfWalkers copy() { + return new DarylHunterOfWalkers(this); + } +} diff --git a/Mage.Sets/src/mage/sets/SecretLairDrop.java b/Mage.Sets/src/mage/sets/SecretLairDrop.java index d9c4e413aa..062bdf246d 100644 --- a/Mage.Sets/src/mage/sets/SecretLairDrop.java +++ b/Mage.Sets/src/mage/sets/SecretLairDrop.java @@ -39,6 +39,7 @@ public class SecretLairDrop extends ExpansionSet { cards.add(new SetCardInfo("Bloodghast", 6, Rarity.RARE, mage.cards.b.Bloodghast.class)); cards.add(new SetCardInfo("Captain Sisay", 51, Rarity.MYTHIC, mage.cards.c.CaptainSisay.class)); cards.add(new SetCardInfo("Darksteel Colossus", 57, Rarity.MYTHIC, mage.cards.d.DarksteelColossus.class)); + cards.add(new SetCardInfo("Daryl, Hunter of Walkers", 144, Rarity.MYTHIC, mage.cards.d.DarylHunterOfWalkers.class)); cards.add(new SetCardInfo("Dig Through Time", 97, Rarity.RARE, mage.cards.d.DigThroughTime.class)); cards.add(new SetCardInfo("Domri Rade", 88, Rarity.MYTHIC, mage.cards.d.DomriRade.class)); cards.add(new SetCardInfo("Dovescape", 95, Rarity.RARE, mage.cards.d.Dovescape.class));