From 6d0a9b8ec033ec1bc3b90b17b2c28e7ffc2c2347 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 30 Nov 2011 20:11:53 +0000 Subject: [PATCH] - When instructed to choose a card to heal/wound X times, a card with vitality/wounds <X can be chosen, as long as that character can be healed/wounded by the card at least once. --- .../ChooseAndAssignCharacterToMinionEffect.java | 2 +- .../ChooseAndAssignMinionToCompanionEffect.java | 2 +- .../choose/ChooseAndExertCharactersEffect.java | 2 +- .../choose/ChooseAndExhaustCharactersEffect.java | 2 +- ...ChooseAndRemoveCultureTokensFromCardEffect.java | 2 +- .../logic/effects/ChooseActiveCardsEffect.java | 10 +++++++--- .../effects/ChooseAndHealCharactersEffect.java | 14 +++++++++++++- .../effects/ChooseAndWoundCharactersEffect.java | 7 ++++++- .../src/main/webapp/includes/changeLog.html | 4 ++++ 9 files changed, 35 insertions(+), 10 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignCharacterToMinionEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignCharacterToMinionEffect.java index 52a4edf86..99778384d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignCharacterToMinionEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignCharacterToMinionEffect.java @@ -25,7 +25,7 @@ public class ChooseAndAssignCharacterToMinionEffect extends ChooseActiveCardEffe } @Override - protected Filter getExtraFilter(final LotroGame game) { + protected Filter getExtraFilterForPlaying(final LotroGame game) { final Side side = game.getGameState().getCurrentPlayerId().equals(_playerId) ? Side.FREE_PEOPLE : Side.SHADOW; return Filters.canBeAssignedToSkirmishByEffectAgainst(side, _minion); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignMinionToCompanionEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignMinionToCompanionEffect.java index ff41c8db0..973f5ec04 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignMinionToCompanionEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndAssignMinionToCompanionEffect.java @@ -26,7 +26,7 @@ public class ChooseAndAssignMinionToCompanionEffect extends ChooseActiveCardEffe } @Override - protected Filter getExtraFilter(final LotroGame game) { + protected Filter getExtraFilterForPlaying(final LotroGame game) { final Side side = game.getGameState().getCurrentPlayerId().equals(_playerId) ? Side.FREE_PEOPLE : Side.SHADOW; return Filters.and( CardType.MINION, diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExertCharactersEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExertCharactersEffect.java index 9ca60805f..937c4048d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExertCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExertCharactersEffect.java @@ -30,7 +30,7 @@ public class ChooseAndExertCharactersEffect extends ChooseActiveCardsEffect { } @Override - protected Filter getExtraFilter(LotroGame game) { + protected Filter getExtraFilterForPlaying(LotroGame game) { return new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java index 7e39a15d6..8baa98c4f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java @@ -23,7 +23,7 @@ public class ChooseAndExhaustCharactersEffect extends ChooseActiveCardsEffect { } @Override - protected Filter getExtraFilter(LotroGame game) { + protected Filter getExtraFilterForPlaying(LotroGame game) { return new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndRemoveCultureTokensFromCardEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndRemoveCultureTokensFromCardEffect.java index 5d7ce5853..25e7f92dc 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndRemoveCultureTokensFromCardEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndRemoveCultureTokensFromCardEffect.java @@ -19,7 +19,7 @@ public class ChooseAndRemoveCultureTokensFromCardEffect extends ChooseActiveCard } @Override - protected Filter getExtraFilter(LotroGame game) { + protected Filter getExtraFilterForPlaying(LotroGame game) { if (_token != null) return Filters.hasToken(_token, _count); else diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseActiveCardsEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseActiveCardsEffect.java index d494d80bd..fabb4f398 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseActiveCardsEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseActiveCardsEffect.java @@ -40,13 +40,17 @@ public abstract class ChooseActiveCardsEffect extends AbstractEffect { _choiceText = choiceText; } - protected Filter getExtraFilter(LotroGame game) { + protected Filter getExtraFilterForPlaying(LotroGame game) { return Filters.any; } + protected Filter getExtraFilterForPlayabilityCheck(LotroGame game) { + return getExtraFilterForPlaying(game); + } + @Override public boolean isPlayableInFull(LotroGame game) { - return Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(_filters, getExtraFilter(game))) >= _minimum; + return Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(_filters, getExtraFilterForPlayabilityCheck(game))) >= _minimum; } @Override @@ -61,7 +65,7 @@ public abstract class ChooseActiveCardsEffect extends AbstractEffect { @Override protected FullEffectResult playEffectReturningResult(final LotroGame game) { - final Collection matchingCards = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(_filters, getExtraFilter(game))); + final Collection matchingCards = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(_filters, getExtraFilterForPlaying(game))); int minimum = _minimum; if (matchingCards.size() < minimum) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java index e62f52fd2..ddf1f5093 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java @@ -33,7 +33,19 @@ public class ChooseAndHealCharactersEffect extends ChooseActiveCardsEffect { } @Override - protected Filter getExtraFilter(LotroGame game) { + protected Filter getExtraFilterForPlayabilityCheck(LotroGame game) { + return Filters.and( + Filters.hasWounds(_count), + new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + return modifiersQuerying.canBeHealed(gameState, physicalCard); + } + }); + } + + @Override + protected Filter getExtraFilterForPlaying(LotroGame game) { return Filters.and( Filters.wounded, new Filter() { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java index eda8ac75d..d191c67dc 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java @@ -31,7 +31,12 @@ public class ChooseAndWoundCharactersEffect extends ChooseActiveCardsEffect { } @Override - protected Filter getExtraFilter(LotroGame game) { + protected Filter getExtraFilterForPlaying(LotroGame game) { + return Filters.canTakeWound; + } + + @Override + protected Filter getExtraFilterForPlayabilityCheck(LotroGame game) { return Filters.canTakeWounds(_count); } diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html index 8433aff49..660afc624 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html @@ -1,4 +1,8 @@
+30 Nov. 2011
+- When instructed to choose a card to heal/wound X times, a card with vitality/wounds <X can be chosen, as long as
+that character can be healed/wounded by the card at least once.
+
 27 Nov. 2011
 - Characters should not die between turns.
 - "Great Hill Troll" site number is 5 now.