From 4f0deea15f27c8f6ac5a3f55f7aeeb588deb6249 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Tue, 3 Mar 2020 14:30:39 +0000 Subject: [PATCH] CardProperty: extend blockedValidThisTurn and blockedByValidThisTurn using defined --- .../java/forge/game/card/CardProperty.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 53e52c0a69c..c14d8610cff 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1518,27 +1518,38 @@ public class CardProperty { } else if (property.startsWith("blockedByThisTurn")) { return !card.getBlockedByThisTurn().isEmpty(); } else if (property.startsWith("blockedValidThisTurn ")) { - if (card.getBlockedThisTurn() == null) { + CardCollectionView blocked = card.getBlockedThisTurn(); + if (blocked == null) { return false; } - String valid = property.split(" ")[1]; - for(Card c : card.getBlockedThisTurn()) { + for(Card c : blocked) { if (c.isValid(valid, card.getController(), source, spellAbility)) { return true; } } + for(Card c : AbilityUtils.getDefinedCards(source, valid, spellAbility)) { + if (blocked.contains(c)) { + return true; + } + }; return false; } else if (property.startsWith("blockedByValidThisTurn ")) { - if (card.getBlockedByThisTurn() == null) { + CardCollectionView blocked = card.getBlockedByThisTurn(); + if (blocked == null) { return false; } String valid = property.split(" ")[1]; - for(Card c : card.getBlockedByThisTurn()) { + for(Card c : blocked) { if (c.isValid(valid, card.getController(), source, spellAbility)) { return true; } } + for(Card c : AbilityUtils.getDefinedCards(source, valid, spellAbility)) { + if (blocked.contains(c)) { + return true; + } + }; return false; } else if (property.startsWith("blockedBySourceThisTurn")) { return source.getBlockedByThisTurn().contains(card); @@ -1779,4 +1790,4 @@ public class CardProperty { return true; } -} \ No newline at end of file +}