From c968a03ff8fb123811ae093beec97380b1cf35d4 Mon Sep 17 00:00:00 2001 From: Achilles Date: Thu, 30 Mar 2017 21:11:15 -0500 Subject: [PATCH] - Fixes all but the Conflagrate issue in regards to FlashbackAbility. The CMC issue works with the Flashback cards as well. Conflagrate will require more testing to see what is going on. --- Mage.Sets/src/mage/cards/c/Conflagrate.java | 7 ++++--- .../main/java/mage/abilities/costs/VariableCostImpl.java | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Mage.Sets/src/mage/cards/c/Conflagrate.java b/Mage.Sets/src/mage/cards/c/Conflagrate.java index 732dd120e20..b9c825eedf1 100644 --- a/Mage.Sets/src/mage/cards/c/Conflagrate.java +++ b/Mage.Sets/src/mage/cards/c/Conflagrate.java @@ -53,7 +53,7 @@ import java.util.UUID; public class Conflagrate extends CardImpl { public Conflagrate(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{X}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{R}"); // Conflagrate deals X damage divided as you choose among any number of target creatures and/or players. DynamicValue xValue = new ConflagrateVariableValue(); @@ -81,12 +81,13 @@ class ConflagrateVariableValue implements DynamicValue { @Override public int calculate(Game game, Ability sourceAbility, Effect effect) { + int xValue = sourceAbility.getManaCostsToPay().getX(); for (Cost cost : sourceAbility.getCosts()) { if (cost instanceof DiscardTargetCost) { - return ((DiscardTargetCost) cost).getCards().size(); + xValue = ((DiscardTargetCost) cost).getCards().size(); } } - return sourceAbility.getManaCostsToPay().getX(); + return xValue; } @Override diff --git a/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java b/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java index 6a770fae8ee..8d699ac8623 100644 --- a/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java @@ -30,6 +30,7 @@ package mage.abilities.costs; import java.util.UUID; import mage.abilities.Ability; import mage.game.Game; +import mage.game.stack.Spell; import mage.players.Player; import mage.target.Target; import mage.target.Targets; @@ -165,7 +166,9 @@ public abstract class VariableCostImpl implements Cost, VariableCost { public int announceXValue(Ability source, Game game) { int xValue = 0; Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { + Spell spell = game.getStack().getSpell(source.getId()); + if (controller != null + && spell != null) { xValue = controller.announceXCost(getMinValue(source, game), getMaxValue(source, game), "Announce the number of " + actionText, game, source, this); }