diff --git a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java index 98193c5f0bf..5255e3fbcd0 100644 --- a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java +++ b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java @@ -510,12 +510,13 @@ public class CostAdjustment { } } if (params.containsKey("ValidTarget")) { - if (!sa.usesTargeting()) { - return false; - } SpellAbility curSa = sa; boolean targetValid = false; outer: while (curSa != null) { + if (!curSa.usesTargeting()) { + curSa = curSa.getSubAbility(); + continue; + } for (GameObject target : curSa.getTargets().getTargets()) { if (target.isValid(params.get("ValidTarget").split(","), hostCard.getController(), hostCard, curSa)) { targetValid = true; @@ -528,12 +529,13 @@ public class CostAdjustment { } } if (params.containsKey("ValidSpellTarget")) { - if (!sa.usesTargeting()) { - return false; - } SpellAbility curSa = sa; boolean targetValid = false; outer: while (curSa != null) { + if (!curSa.usesTargeting()) { + curSa = curSa.getSubAbility(); + continue; + } for (SpellAbility target : curSa.getTargets().getTargetSpells()) { Card targetCard = target.getHostCard(); if (targetCard.isValid(params.get("ValidSpellTarget").split(","), hostCard.getController(), hostCard, curSa)) {