From e48ac2e6234fd8c6a99a63a19fb8146ec4491bd4 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Mon, 13 Feb 2023 18:18:29 +0100 Subject: [PATCH] Fix ignoring Guardian Beast --- forge-ai/src/main/java/forge/ai/AiCostDecision.java | 3 ++- forge-game/src/main/java/forge/game/cost/CostGainControl.java | 1 + forge-gui/src/main/java/forge/player/HumanCostDecision.java | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiCostDecision.java b/forge-ai/src/main/java/forge/ai/AiCostDecision.java index 664d5c6e533..efd88dec28c 100644 --- a/forge-ai/src/main/java/forge/ai/AiCostDecision.java +++ b/forge-ai/src/main/java/forge/ai/AiCostDecision.java @@ -265,7 +265,8 @@ public class AiCostDecision extends CostDecisionMakerBase { int c = cost.getAbilityAmount(ability); - final CardCollection typeList = CardLists.getValidCards(player.getGame().getCardsIn(ZoneType.Battlefield), cost.getType().split(";"), player, source, ability); + CardCollection typeList = CardLists.getValidCards(player.getGame().getCardsIn(ZoneType.Battlefield), cost.getType().split(";"), player, source, ability); + typeList = CardLists.filter(typeList, crd -> crd.canBeControlledBy(player)); if (typeList.size() < c) { return null; diff --git a/forge-game/src/main/java/forge/game/cost/CostGainControl.java b/forge-game/src/main/java/forge/game/cost/CostGainControl.java index 3f2f905a12c..54b44539151 100644 --- a/forge-game/src/main/java/forge/game/cost/CostGainControl.java +++ b/forge-game/src/main/java/forge/game/cost/CostGainControl.java @@ -77,6 +77,7 @@ public class CostGainControl extends CostPartWithList { final Card source = ability.getHostCard(); CardCollectionView typeList = payer.getGame().getCardsIn(ZoneType.Battlefield); typeList = CardLists.getValidCards(typeList, this.getType().split(";"), payer, source, ability); + typeList = CardLists.filter(typeList, c -> c.canBeControlledBy(payer)); return typeList.size() >= getAbilityAmount(ability); } diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java index c09e669cdf6..d72c309a5e3 100644 --- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java +++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java @@ -509,7 +509,8 @@ public class HumanCostDecision extends CostDecisionMakerBase { int c = cost.getAbilityAmount(ability); final CardCollectionView list = player.getCardsIn(ZoneType.Battlefield); - final CardCollectionView validCards = CardLists.getValidCards(list, cost.getType().split(";"), player, source, ability); + CardCollectionView validCards = CardLists.getValidCards(list, cost.getType().split(";"), player, source, ability); + validCards = CardLists.filter(validCards, crd -> crd.canBeControlledBy(player)); final InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, c, validCards, ability); final String desc = cost.getTypeDescription() == null ? cost.getType() : cost.getTypeDescription();