From d1b2851f3ef96cfba5e16d1b9f9ab4f3fd15e131 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sun, 26 Jan 2014 17:43:35 +0100 Subject: [PATCH] * Fall of the Hammer - Fixed that both targets got the damage instead correctly only the second. --- .../sets/bornofthegods/FallOfTheHammer.java | 51 ++++++++++++++++--- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/Mage.Sets/src/mage/sets/bornofthegods/FallOfTheHammer.java b/Mage.Sets/src/mage/sets/bornofthegods/FallOfTheHammer.java index 6e9d634c8f..77955ebab2 100644 --- a/Mage.Sets/src/mage/sets/bornofthegods/FallOfTheHammer.java +++ b/Mage.Sets/src/mage/sets/bornofthegods/FallOfTheHammer.java @@ -31,20 +31,30 @@ import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.TargetPermanentPowerCount; import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Rarity; -import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; +import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.SecondTargetPointer; /** * + * + * As Fall of the Hammer tries to resolve, if only one of the targets is legal, + * Fall of the Hammer will still resolve but will have no effect: If the first + * target creature is illegal, it can't deal damage to anything. If the second + * target creature is illegal, it can't be dealt damage. + * + * The amount of damage dealt is based on the first target creature's power as Fall of the Hammer resolves. + + * @author LevelX2 */ public class FallOfTheHammer extends CardImpl { @@ -58,10 +68,7 @@ public class FallOfTheHammer extends CardImpl { this.color.setRed(true); // Target creature you control deals damage equal to its power to another target creature. - Effect effect = new DamageTargetEffect(new TargetPermanentPowerCount()); - effect.setTargetPointer(new SecondTargetPointer()); - effect.setText("Target creature you control deals damage equal to its power to another target creature"); - this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addEffect(new FallOfTheHammerDamageEffect()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent(true)); this.getSpellAbility().addTarget(new FallOfTheHammerTargetCreaturePermanent(filter, true)); } @@ -76,6 +83,38 @@ public class FallOfTheHammer extends CardImpl { } } +class FallOfTheHammerDamageEffect extends OneShotEffect { + + public FallOfTheHammerDamageEffect() { + super(Outcome.Damage); + this.staticText = "Target creature you control deals damage equal to its power to another target creature"; + } + + public FallOfTheHammerDamageEffect(final FallOfTheHammerDamageEffect effect) { + super(effect); + } + + @Override + public FallOfTheHammerDamageEffect copy() { + return new FallOfTheHammerDamageEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent ownCreature = game.getPermanent(source.getFirstTarget()); + if (ownCreature != null) { + int damage = ownCreature.getPower().getValue(); + Permanent targetCreature = game.getPermanent(source.getTargets().get(1).getFirstTarget()); + if (targetCreature != null) { + targetCreature.damage(damage, ownCreature.getId(), game, true, false); + return true; + } + } + return false; + } +} + + class FallOfTheHammerTargetCreaturePermanent extends TargetCreaturePermanent { public FallOfTheHammerTargetCreaturePermanent(FilterCreaturePermanent filter, boolean required) {