From 34c2d37b466650dc7c167231e525e1a882271687 Mon Sep 17 00:00:00 2001 From: Sol Date: Wed, 5 Mar 2014 03:53:07 +0000 Subject: [PATCH] - Preventing a crash by passing a dummy SpellAbility into Propaganda effects --- .../main/java/forge/game/combat/CombatUtil.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/combat/CombatUtil.java b/forge-game/src/main/java/forge/game/combat/CombatUtil.java index 3b07aa6bbf4..f22e51f1576 100644 --- a/forge-game/src/main/java/forge/game/combat/CombatUtil.java +++ b/forge-game/src/main/java/forge/game/combat/CombatUtil.java @@ -986,8 +986,22 @@ public class CombatUtil { } } + // Not a great solution, but prevents a crash by passing a fake SA for Propaganda payments + // If there's a better way of handling this somewhere deeper in the code, feel free to remove + SpellAbility fakeSA = new SpellAbility(c, attackCost) { + @Override + public boolean canPlay() { + return false; + } + + @Override + public void resolve() { + + } + }; + boolean isFree = attackCost.getTotalMana().isZero() && attackCost.isOnlyManaCost(); // true if needless to pay - return isFree || c.getController().getController().payManaOptional(c, attackCost, null, "Pay additional cost to declare " + c + " an attacker", ManaPaymentPurpose.DeclareAttacker); + return isFree || c.getController().getController().payManaOptional(c, attackCost, fakeSA, "Pay additional cost to declare " + c + " an attacker", ManaPaymentPurpose.DeclareAttacker); } /**