From 28fd48e8d21fe078bde65f74219cfb8cf26776fe Mon Sep 17 00:00:00 2001 From: Hanmac Date: Mon, 3 Oct 2016 08:09:48 +0000 Subject: [PATCH] ComputerUtilCombat: canCrew now checks if the creatures can crew a vehicle, also use CardLists functions to clean up the code --- .../src/main/java/forge/ai/ComputerUtilCombat.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 4174350cf34..30cc4f15b6d 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -31,6 +31,7 @@ import forge.game.card.CardCollection; import forge.game.card.CardCollectionView; import forge.game.card.CardFactoryUtil; import forge.game.card.CardLists; +import forge.game.card.CardPredicates.Presets; import forge.game.card.CardUtil; import forge.game.card.CounterType; import forge.game.combat.Combat; @@ -2404,12 +2405,12 @@ public class ComputerUtilCombat { * @return true if a vehicle can be crewed at this moment, false otherwise */ public final static boolean canCrew(Player p, SpellAbility crewSa) { - int totPower = 0; - for (Card c : p.getZone(ZoneType.Battlefield).getCards()) { - if (c.isCreature() && !c.isTapped()) { - totPower += c.getCurrentPower(); - } - } + // get Untapped Creatures + CardCollectionView typeList = CardLists.filter(p.getCreaturesInPlay(), Presets.UNTAPPED); + // remove them which can't crew Vehicles + typeList = CardLists.getNotKeyword(typeList, "CARDNAME can't crew Vehicles."); + // get Total Power + int totPower = CardLists.getTotalPower(typeList); int crewReq = Integer.parseInt(TextUtil.split(crewSa.getParam("CostDesc"), ' ', 3)[1]);