From cb15d4728d3273ac60ce7edc49b329a61ab7b52f Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sun, 27 Aug 2017 14:27:03 +0200 Subject: [PATCH] * Dragon Tempest - Fixed a problem if damage was redirected (e.g. with Spellskite) - (fixes #3887). --- Mage.Sets/src/mage/cards/d/DragonTempest.java | 10 +++++----- .../common/EntersBattlefieldAllTriggeredAbility.java | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Mage.Sets/src/mage/cards/d/DragonTempest.java b/Mage.Sets/src/mage/cards/d/DragonTempest.java index e760a1a34ef..a5556b6344e 100644 --- a/Mage.Sets/src/mage/cards/d/DragonTempest.java +++ b/Mage.Sets/src/mage/cards/d/DragonTempest.java @@ -46,7 +46,6 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; -import mage.target.targetpointer.FixedTarget; /** * @@ -74,7 +73,7 @@ public class DragonTempest extends CardImpl { new DragonTempestDamageEffect(), new FilterCreaturePermanent(SubType.DRAGON, "a Dragon"), false, - SetTargetPointer.PERMANENT, + SetTargetPointer.NONE, "" ); ability.addTarget(new TargetCreatureOrPlayer()); @@ -118,15 +117,16 @@ class DragonTempestDamageEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { + Permanent damageSource = (Permanent) getValue("permanentEnteringBattlefield"); int amount = game.getBattlefield().countAll(dragonFilter, controller.getId(), game); if (amount > 0) { - Permanent targetCreature = ((FixedTarget) getTargetPointer()).getTargetedPermanentOrLKIBattlefield(game); + Permanent targetCreature = game.getPermanent(getTargetPointer().getFirst(game, source)); if (targetCreature != null) { - targetCreature.damage(amount, getTargetPointer().getFirst(game, source), game, false, true); + targetCreature.damage(amount, damageSource.getId(), game, false, true); } else { Player player = game.getPlayer(source.getTargets().getFirstTarget()); if (player != null) { - player.damage(amount, getTargetPointer().getFirst(game, source), game, false, true); + player.damage(amount, damageSource.getId(), game, false, true); } } } diff --git a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java index 9e4daeb3fec..940f0b9c050 100644 --- a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java @@ -105,6 +105,9 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl { UUID targetId = event.getTargetId(); Permanent permanent = game.getPermanent(targetId); if (permanent != null && filter.match(permanent, getSourceId(), getControllerId(), game)) { + for (Effect effect : this.getEffects()) { + effect.setValue("permanentEnteringBattlefield", permanent); + } if (setTargetPointer != SetTargetPointer.NONE) { for (Effect effect : this.getEffects()) { switch (setTargetPointer) {