diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index 9785ddf0a8e..63b58c2ff25 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -1179,7 +1179,7 @@ public class AiAttackController { CardPredicates.hasKeyword(Keyword.LIFELINK))).isEmpty(); // total power of the defending creatures, used in predicting whether a gang block can kill the attacker - int defPower = CardLists.getTotalPower(validBlockers, true); + int defPower = CardLists.getTotalPower(validBlockers, true, false); if (!hasCombatEffect) { for (KeywordInterface inst : attacker.getKeywords()) { diff --git a/forge-game/src/main/java/forge/game/cost/CostTapType.java b/forge-game/src/main/java/forge/game/cost/CostTapType.java index fa62b2945a9..207cadc38b6 100644 --- a/forge-game/src/main/java/forge/game/cost/CostTapType.java +++ b/forge-game/src/main/java/forge/game/cost/CostTapType.java @@ -131,8 +131,10 @@ public class CostTapType extends CostPartWithList { } typeList = CardLists.filter(typeList, Presets.UNTAPPED); + boolean isCrew=false; if (ability.hasParam("Crew")) { typeList = CardLists.getNotKeyword(typeList, "CARDNAME can't crew Vehicles."); + isCrew=true; } if (sameType) { @@ -146,7 +148,7 @@ public class CostTapType extends CostPartWithList { if (totalPower) { final int i = Integer.parseInt(totalP); - return CardLists.getTotalPower(typeList, true) >= i; + return CardLists.getTotalPower(typeList, true, isCrew) >= i; } final Integer amount = this.convertAmount(); diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java index 22d8f37323a..b5e4fb56a8c 100644 --- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java +++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java @@ -1187,8 +1187,10 @@ public class HumanCostDecision extends CostDecisionMakerBase { source, ability); typeList = CardLists.filter(typeList, Presets.UNTAPPED); + boolean isCrew=false; if (ability.hasParam("Crew")) { typeList = CardLists.getNotKeyword(typeList, "CARDNAME can't crew Vehicles."); + isCrew=true; } if (c == null && !amount.equals("Any")) { @@ -1247,7 +1249,7 @@ public class HumanCostDecision extends CostDecisionMakerBase { inp.setCancelAllowed(true); inp.showAndWait(); - if (inp.hasCancelled() || CardLists.getTotalPower(inp.getSelected(), true) < i) { + if (inp.hasCancelled() || CardLists.getTotalPower(inp.getSelected(), true, isCrew) < i) { return null; } return PaymentDecision.card(inp.getSelected());