* Fall of the Hammer - Fixed that both targets got the damage instead correctly only the second.

This commit is contained in:
LevelX2 2014-01-26 17:43:35 +01:00
parent 13d488757a
commit d1b2851f3e

View file

@ -31,20 +31,30 @@ import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.dynamicvalue.common.TargetPermanentPowerCount; import mage.abilities.dynamicvalue.common.TargetPermanentPowerCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import mage.target.targetpointer.SecondTargetPointer; 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 * @author LevelX2
*/ */
public class FallOfTheHammer extends CardImpl<FallOfTheHammer> { public class FallOfTheHammer extends CardImpl<FallOfTheHammer> {
@ -58,10 +68,7 @@ public class FallOfTheHammer extends CardImpl<FallOfTheHammer> {
this.color.setRed(true); this.color.setRed(true);
// Target creature you control deals damage equal to its power to another target creature. // Target creature you control deals damage equal to its power to another target creature.
Effect effect = new DamageTargetEffect(new TargetPermanentPowerCount()); this.getSpellAbility().addEffect(new FallOfTheHammerDamageEffect());
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().addTarget(new TargetControlledCreaturePermanent(true)); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent(true));
this.getSpellAbility().addTarget(new FallOfTheHammerTargetCreaturePermanent(filter, true)); this.getSpellAbility().addTarget(new FallOfTheHammerTargetCreaturePermanent(filter, true));
} }
@ -76,6 +83,38 @@ public class FallOfTheHammer extends CardImpl<FallOfTheHammer> {
} }
} }
class FallOfTheHammerDamageEffect extends OneShotEffect<FallOfTheHammerDamageEffect> {
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 { class FallOfTheHammerTargetCreaturePermanent extends TargetCreaturePermanent {
public FallOfTheHammerTargetCreaturePermanent(FilterCreaturePermanent filter, boolean required) { public FallOfTheHammerTargetCreaturePermanent(FilterCreaturePermanent filter, boolean required) {