From a079727608f614c751ad2ef09eab7ed23a18425a Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 21 Mar 2014 14:40:55 +0100 Subject: [PATCH] * Electropotence - Fixed that it did not trigger for tokens and mana payment is now during resolution as it should be. --- .../mage/sets/zendikar/Electropotence.java | 52 +++++++++---------- .../abilities/keyword/ReboundAbility.java | 13 ++--- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/Mage.Sets/src/mage/sets/zendikar/Electropotence.java b/Mage.Sets/src/mage/sets/zendikar/Electropotence.java index ed817e8c92c..4ba7037baaa 100644 --- a/Mage.Sets/src/mage/sets/zendikar/Electropotence.java +++ b/Mage.Sets/src/mage/sets/zendikar/Electropotence.java @@ -34,9 +34,9 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; import mage.cards.CardImpl; import mage.game.Game; import mage.game.events.GameEvent; @@ -76,7 +76,6 @@ class ElectropotenceTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean apply(Game game, Ability source) { UUID creatureId = (UUID) getValue("damageSource"); - Permanent creature = game.getPermanent(creatureId); - if (creature == null) { - creature = (Permanent) game.getLastKnownInformation(creatureId, Zone.BATTLEFIELD); - } - if (creature != null) { - int amount = creature.getPower().getValue(); - UUID target = source.getTargets().getFirstTarget(); - Permanent targetCreature = game.getPermanent(target); - if (targetCreature != null) { - targetCreature.damage(amount, creature.getId(), game, true, false); - return true; - } - Player player = game.getPlayer(target); - if (player != null) { - player.damage(amount, creature.getId(), game, false, true); - return true; - } + Permanent creature = game.getPermanentOrLKIBattlefield(creatureId); + Player controller = game.getPlayer(source.getControllerId()); + if (creature != null && controller != null) { + if (controller.chooseUse(Outcome.Damage, "Pay {2}{R} to do the damage?", game)) { + // if (controller.chooseUse(Outcome.Damage, "Pay {2}{R}? If you do, " + creature.getName() + " deals damage equal to its power to target creature or player.", game)) { + ManaCosts manaCosts = new ManaCostsImpl("{2}{R}"); + if (manaCosts.pay(source, game, source.getSourceId(), controller.getId(), false)) { + int amount = creature.getPower().getValue(); + UUID target = source.getTargets().getFirstTarget(); + Permanent targetCreature = game.getPermanent(target); + if (targetCreature != null) { + targetCreature.damage(amount, creature.getId(), game, true, false); + } else { + Player player = game.getPlayer(target); + if (player != null) { + player.damage(amount, creature.getId(), game, false, true); + } + } + + } + } + return true; } return false; } diff --git a/Mage/src/mage/abilities/keyword/ReboundAbility.java b/Mage/src/mage/abilities/keyword/ReboundAbility.java index 2d9ba6bad5d..7b5a24cf548 100644 --- a/Mage/src/mage/abilities/keyword/ReboundAbility.java +++ b/Mage/src/mage/abilities/keyword/ReboundAbility.java @@ -305,12 +305,13 @@ class ReboundCastSpellFromExileEffect extends OneShotEffect