From 5cb89e38d50bbacddd32848fe0cd43842ac49977 Mon Sep 17 00:00:00 2001 From: Cowboy Date: Thu, 2 Jan 2014 16:23:42 -0500 Subject: [PATCH] Revised Odyssey cards --- .../src/mage/sets/odyssey/ZombieCannibal.java | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/Mage.Sets/src/mage/sets/odyssey/ZombieCannibal.java b/Mage.Sets/src/mage/sets/odyssey/ZombieCannibal.java index 3c77b9a069e..2e49c37bfba 100644 --- a/Mage.Sets/src/mage/sets/odyssey/ZombieCannibal.java +++ b/Mage.Sets/src/mage/sets/odyssey/ZombieCannibal.java @@ -31,12 +31,17 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; -import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Rarity; import mage.filter.FilterCard; -import mage.target.common.TargetCardInOpponentsGraveyard; +import mage.filter.predicate.other.OwnerIdPredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetCardInGraveyard; /** * @@ -54,8 +59,8 @@ public class ZombieCannibal extends CardImpl { this.toughness = new MageInt(1); // Whenever Zombie Cannibal deals combat damage to a player, you may exile target card from that player's graveyard. - Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new ExileTargetEffect(), false, true); - ability.addTarget(new TargetCardInOpponentsGraveyard(new FilterCard())); + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new ZombieCannibalEffect(), true, true)); + } public ZombieCannibal(final ZombieCannibal card) { @@ -67,3 +72,33 @@ public class ZombieCannibal extends CardImpl { return new ZombieCannibal(this); } } + +class ZombieCannibalEffect extends OneShotEffect { + + public ZombieCannibalEffect() { + super(Outcome.Exile); + staticText = "you may exile target card from that player's graveyard."; + } + + public ZombieCannibalEffect(final ZombieCannibalEffect effect) { + super(effect); + } + + @Override + public ZombieCannibalEffect copy() { + return new ZombieCannibalEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + FilterCard filter = new FilterCard(); + Player player = game.getPlayer(source.getTargets().getFirstTarget()); + if (player != null) { + filter.add(new OwnerIdPredicate(player.getId())); + Target target = new TargetCardInGraveyard(filter); + game.getPermanent(target.getFirstTarget()).moveToExile(null, null, source.getSourceId(), game); + } + return false; + } + +}