diff --git a/src/main/java/forge/card/cost/CostDiscard.java b/src/main/java/forge/card/cost/CostDiscard.java index 54f20539dc1..b18a603c9bc 100644 --- a/src/main/java/forge/card/cost/CostDiscard.java +++ b/src/main/java/forge/card/cost/CostDiscard.java @@ -225,6 +225,10 @@ public class CostDiscard extends CostPartWithList { @Override public void showMessage() { + if (nNeeded == 0){ + done(); + } + if (AllZone.getHumanHand().size() == 0) stop(); StringBuilder type = new StringBuilder(""); if (!discType.equals("Card")) { diff --git a/src/main/java/forge/card/cost/CostExile.java b/src/main/java/forge/card/cost/CostExile.java index 86a95c7d562..c69889187f0 100644 --- a/src/main/java/forge/card/cost/CostExile.java +++ b/src/main/java/forge/card/cost/CostExile.java @@ -189,6 +189,10 @@ public class CostExile extends CostPartWithList { @Override public void showMessage() { + if (nNeeded == 0){ + done(); + } + typeList = AllZoneUtil.getCardsInZone(part.getFrom(), sa.getActivatingPlayer()); typeList = typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(), sa.getSourceCard()); @@ -249,6 +253,10 @@ public class CostExile extends CostPartWithList { @Override public void showMessage() { + if (nNeeded == 0){ + done(); + } + StringBuilder msg = new StringBuilder("Exile "); int nLeft = nNeeded - nExiles; msg.append(nLeft).append(" "); diff --git a/src/main/java/forge/card/cost/CostReturn.java b/src/main/java/forge/card/cost/CostReturn.java index cff6644fa4d..45ea26ceecd 100644 --- a/src/main/java/forge/card/cost/CostReturn.java +++ b/src/main/java/forge/card/cost/CostReturn.java @@ -133,6 +133,10 @@ public class CostReturn extends CostPartWithList { @Override public void showMessage() { + if (nNeeded == 0){ + done(); + } + StringBuilder msg = new StringBuilder("Return "); int nLeft = nNeeded - nReturns; msg.append(nLeft).append(" "); diff --git a/src/main/java/forge/card/cost/CostReveal.java b/src/main/java/forge/card/cost/CostReveal.java index 746f933acea..78497f6c1d7 100644 --- a/src/main/java/forge/card/cost/CostReveal.java +++ b/src/main/java/forge/card/cost/CostReveal.java @@ -155,6 +155,10 @@ public class CostReveal extends CostPartWithList { @Override public void showMessage() { + if (nNeeded == 0){ + done(); + } + if (AllZone.getHumanHand().size() < nNeeded) stop(); StringBuilder type = new StringBuilder(""); if (!discType.equals("Card")) { diff --git a/src/main/java/forge/card/cost/CostSacrifice.java b/src/main/java/forge/card/cost/CostSacrifice.java index 58a0d07ae0c..c33c46ef068 100644 --- a/src/main/java/forge/card/cost/CostSacrifice.java +++ b/src/main/java/forge/card/cost/CostSacrifice.java @@ -172,6 +172,10 @@ public class CostSacrifice extends CostPartWithList { @Override public void showMessage() { + if (nNeeded == 0){ + done(); + } + StringBuilder msg = new StringBuilder("Sacrifice "); int nLeft = nNeeded - nSacrifices; msg.append(nLeft).append(" "); diff --git a/src/main/java/forge/card/cost/CostTapType.java b/src/main/java/forge/card/cost/CostTapType.java index 7f6100304f2..56e2fa0c95b 100644 --- a/src/main/java/forge/card/cost/CostTapType.java +++ b/src/main/java/forge/card/cost/CostTapType.java @@ -133,6 +133,10 @@ public class CostTapType extends CostPartWithList { @Override public void showMessage() { + if (nCards == 0){ + done(); + } + if (cardList.size() == 0) stop(); int left = nCards - nTapped;