From 2dd4a32048b396d38e90132bb2b636320f2299a5 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Wed, 28 Aug 2013 16:08:52 +0200 Subject: [PATCH] * Anhilator Ability - Fixed a bug hat could happen if multiple creatures with Annihilator were on the battlefield (fixes #287). --- .../mage/abilities/keyword/AnnihilatorAbility.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Mage/src/mage/abilities/keyword/AnnihilatorAbility.java b/Mage/src/mage/abilities/keyword/AnnihilatorAbility.java index 3e18e1c5505..8c8fd4dc755 100644 --- a/Mage/src/mage/abilities/keyword/AnnihilatorAbility.java +++ b/Mage/src/mage/abilities/keyword/AnnihilatorAbility.java @@ -47,7 +47,11 @@ import mage.target.common.TargetControlledPermanent; import java.util.UUID; /** - * TODO: Javadoc me + * 702.84. Annihilator + * 702.84a Annihilator is a triggered ability. "Annihilator N" means "Whenever this + * creature attacks, defending player sacrifices N permanents." + * + * 702.84b If a creature has multiple instances of annihilator, each triggers separately. * * @author maurer.it_at_gmail.com */ @@ -88,10 +92,9 @@ public class AnnihilatorAbility extends TriggeredAbilityImpl class AnnihilatorEffect extends OneShotEffect { private final int count; - private static final FilterControlledPermanent filter; - + private static final FilterControlledPermanent filter = new FilterControlledPermanent();; static { - filter = new FilterControlledPermanent(); + filter.add(new ControllerPredicate(TargetController.YOU)); } AnnihilatorEffect ( int count ) { @@ -115,7 +118,7 @@ class AnnihilatorEffect extends OneShotEffect { player = game.getPlayer(permanent.getControllerId()); } - filter.add(new ControllerPredicate(TargetController.YOU)); + int amount = Math.min(count, game.getBattlefield().countAll(filter, player.getId(), game)); Target target = new TargetControlledPermanent(amount, amount, filter, false);