From 6f9be4ff8f4f3a8d62385385185d29dd622d02bb Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Tue, 16 Apr 2013 17:25:12 +0000 Subject: [PATCH] Mana cost additions were incorrect - X was discarded! --- src/main/java/forge/card/mana/ManaCostBeingPaid.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/forge/card/mana/ManaCostBeingPaid.java b/src/main/java/forge/card/mana/ManaCostBeingPaid.java index 9b3df0592ed..ece12311a36 100644 --- a/src/main/java/forge/card/mana/ManaCostBeingPaid.java +++ b/src/main/java/forge/card/mana/ManaCostBeingPaid.java @@ -50,8 +50,9 @@ import forge.util.MyRandom; public class ManaCostBeingPaid { private class ManaCostBeingPaidIterator implements IParserManaCost { private Iterator mch; - private ManaCostShard nextShard; + private ManaCostShard nextShard = null; private int remainingShards = 0; + private boolean hasSentX = false; public ManaCostBeingPaidIterator() { mch = unpaidShards.keySet().iterator(); @@ -73,6 +74,14 @@ public class ManaCostBeingPaid { @Override public boolean hasNext() { if ( remainingShards > 0 ) return true; + if ( !hasSentX ) { + if ( nextShard != ManaCostShard.X && cntX > 0) { + nextShard = ManaCostShard.X; + remainingShards = cntX; + return true; + } else + hasSentX = true; + } if ( !mch.hasNext() ) return false; nextShard = mch.next();