From 4b0c748eaf03819ff78efc19d00d4e6b7d5c7a2b Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Wed, 9 Jun 2021 11:40:11 +0200 Subject: [PATCH] Fix Myr Battlesphere allowing you to tap for X = 0 --- .../match/input/InputSelectEntitiesFromList.java | 2 +- .../src/main/java/forge/player/HumanCostDecision.java | 8 +++++--- forge-gui/src/main/java/forge/player/HumanPlay.java | 1 - 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java index ddd8606d01f..1002456e4d3 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java @@ -32,7 +32,7 @@ public class InputSelectEntitiesFromList extends InputSele public InputSelectEntitiesFromList(final PlayerControllerHuman controller, final int min, final int max, final FCollectionView validChoices0, final SpellAbility sa0) { super(controller, Math.min(min, validChoices0.size()), Math.min(max, validChoices0.size()), sa0); validChoices = validChoices0; - if (min > validChoices.size()) { // pfps does this really do anything useful?? + if (min > validChoices.size()) { // pfps does this really do anything useful?? System.out.println(String.format("Trying to choose at least %d things from a list with only %d things!", min, validChoices.size())); } ArrayList vCards = new ArrayList<>(); diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java index 8484c7d5bdb..4ce3e8492db 100644 --- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java +++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java @@ -1096,6 +1096,10 @@ public class HumanCostDecision extends CostDecisionMakerBase { c = AbilityUtils.calculateAmount(source, amount, ability); } + if (c == 0) { + return PaymentDecision.number(0); + } + if (sameType) { final CardCollection list2 = typeList; typeList = CardLists.filter(typeList, new Predicate() { @@ -1109,9 +1113,7 @@ public class HumanCostDecision extends CostDecisionMakerBase { return false; } }); - if (c == 0) { - return PaymentDecision.number(0); - } + final CardCollection tapped = new CardCollection(); while (c > 0) { final InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, 1, 1, typeList, ability); diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index ba58489a1cf..a177fbb42f5 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -105,7 +105,6 @@ public class HumanPlay { sa = AbilityUtils.addSpliceEffects(sa); - // System.out.println("Playing:" + sa.getDescription() + " of " + sa.getHostCard() + " new = " + newAbility); final HumanPlaySpellAbility req = new HumanPlaySpellAbility(controller, sa); if (!req.playAbility(true, false, false)) { if (flippedToCast && !castFaceDown) {