From 9d75f29f3c5bd0c900fdaf0df990fcbe0823575e Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sun, 5 Apr 2020 15:06:50 -0400 Subject: [PATCH] Implemented Drannith Magistrate --- .../src/mage/cards/d/DrannithMagistrate.java | 75 +++++++++++++++++++ .../src/mage/sets/IkoriaLairOfBehemoths.java | 1 + 2 files changed, 76 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/d/DrannithMagistrate.java diff --git a/Mage.Sets/src/mage/cards/d/DrannithMagistrate.java b/Mage.Sets/src/mage/cards/d/DrannithMagistrate.java new file mode 100644 index 00000000000..583b7578336 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DrannithMagistrate.java @@ -0,0 +1,75 @@ +package mage.cards.d; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.game.Game; +import mage.game.events.GameEvent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class DrannithMagistrate extends CardImpl { + + public DrannithMagistrate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.WIZARD); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // Your opponents can't cast spells from anywhere other than their hands. + this.addAbility(new SimpleStaticAbility(new DrannithMagistrateEffect())); + } + + private DrannithMagistrate(final DrannithMagistrate card) { + super(card); + } + + @Override + public DrannithMagistrate copy() { + return new DrannithMagistrate(this); + } +} + +class DrannithMagistrateEffect extends ContinuousRuleModifyingEffectImpl { + + DrannithMagistrateEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "Your opponents can't cast spells from anywhere other than their hands"; + } + + private DrannithMagistrateEffect(final DrannithMagistrateEffect effect) { + super(effect); + } + + @Override + public DrannithMagistrateEffect copy() { + return new DrannithMagistrateEffect(this); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.CAST_SPELL; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (!game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) { + return false; + } + Card card = game.getCard(event.getSourceId()); + if (card == null) { + return false; + } + return game.getState().getZone(card.getId()) != Zone.HAND; + } +} diff --git a/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java b/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java index 79f4642852e..975e047df65 100644 --- a/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java +++ b/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java @@ -38,6 +38,7 @@ public final class IkoriaLairOfBehemoths extends ExpansionSet { cards.add(new SetCardInfo("Crystalline Giant", 234, Rarity.RARE, mage.cards.c.CrystallineGiant.class)); cards.add(new SetCardInfo("Dire Tactics", 183, Rarity.UNCOMMON, mage.cards.d.DireTactics.class)); cards.add(new SetCardInfo("Dirge Bat", 84, Rarity.RARE, mage.cards.d.DirgeBat.class)); + cards.add(new SetCardInfo("Drannith Magistrate", 11, Rarity.RARE, mage.cards.d.DrannithMagistrate.class)); cards.add(new SetCardInfo("Drannith Stinger", 113, Rarity.COMMON, mage.cards.d.DrannithStinger.class)); cards.add(new SetCardInfo("Dreamtail Heron", 47, Rarity.COMMON, mage.cards.d.DreamtailHeron.class)); cards.add(new SetCardInfo("Essence Scatter", 49, Rarity.COMMON, mage.cards.e.EssenceScatter.class));