From 48f611aead02432a9843d88100dea0cb6b527405 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 17 Nov 2011 12:32:53 +0000 Subject: [PATCH] Simplifying PossessionClass filtering. --- .../cards/decisions/ForEachYouSpotDecision.java | 6 +++--- .../lotro/cards/set1/dwarven/Card1_003.java | 2 +- .../lotro/cards/set1/gandalf/Card1_074.java | 2 +- .../lotro/cards/set1/gondor/Card1_091.java | 2 +- .../lotro/cards/set1/gondor/Card1_102.java | 2 +- .../lotro/cards/set1/shire/Card1_285.java | 2 +- .../lotro/cards/set1/shire/Card1_292.java | 2 +- .../gempukku/lotro/cards/set1/site/Card1_345.java | 4 ++-- .../gempukku/lotro/cards/set1/site/Card1_347.java | 2 +- .../lotro/cards/set2/dwarven/Card2_005.java | 2 +- .../lotro/cards/set2/gandalf/Card2_025.java | 8 ++++---- .../lotro/cards/set2/gandalf/Card2_027.java | 4 ++-- .../lotro/cards/set2/gandalf/Card2_030.java | 2 +- .../lotro/cards/set2/isengard/Card2_039.java | 12 ++++++------ .../lotro/cards/set2/moria/Card2_056.java | 2 +- .../lotro/cards/set2/moria/Card2_074.java | 6 +++--- .../lotro/cards/set3/shire/Card3_107.java | 2 +- .../lotro/cards/set3/wraith/Card3_084.java | 2 +- .../lotro/cards/set4/elven/Card4_065.java | 6 +++--- .../lotro/cards/set4/elven/Card4_080.java | 2 +- .../lotro/cards/set4/elven/Card4_081.java | 4 ++-- .../lotro/cards/set4/elven/Card4_086.java | 4 ++-- .../lotro/cards/set4/gandalf/Card4_100.java | 4 ++-- .../lotro/cards/set4/isengard/Card4_196.java | 2 +- .../lotro/cards/set5/elven/Card5_013.java | 4 ++-- .../lotro/cards/set6/elven/Card6_023.java | 2 +- .../java/com/gempukku/lotro/filters/Filters.java | 15 +++++++++++---- 27 files changed, 57 insertions(+), 50 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/decisions/ForEachYouSpotDecision.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/decisions/ForEachYouSpotDecision.java index df1ab76cb..903b20afb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/decisions/ForEachYouSpotDecision.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/decisions/ForEachYouSpotDecision.java @@ -1,6 +1,6 @@ package com.gempukku.lotro.cards.decisions; -import com.gempukku.lotro.filters.Filter; +import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; @@ -10,11 +10,11 @@ import java.util.Map; public abstract class ForEachYouSpotDecision extends IntegerAwaitingDecision { private LotroGame _lotroGame; - private Filter _filter; + private Filterable _filter; private int _defaultValue; private int _max; - protected ForEachYouSpotDecision(int id, String text, LotroGame lotroGame, Filter filter, int defaultValue) { + protected ForEachYouSpotDecision(int id, String text, LotroGame lotroGame, Filterable filter, int defaultValue) { super(id, text, 0); _lotroGame = lotroGame; _filter = filter; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_003.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_003.java index bd3048c10..4329872ae 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_003.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_003.java @@ -28,7 +28,7 @@ public class Card1_003 extends AbstractOldEvent { action.appendEffect( new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CardMatchesEvaluator(2, 3, - Filters.hasAttached(Culture.DWARVEN, Filters.possessionClass(PossessionClass.HAND_WEAPON))), + Filters.hasAttached(Culture.DWARVEN, PossessionClass.HAND_WEAPON)), Filters.race(Race.DWARF))); return action; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_074.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_074.java index b793fbab0..be6c1abf9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_074.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_074.java @@ -45,7 +45,7 @@ public class Card1_074 extends AbstractAttachableFPPossession { new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.keyword(Keyword.PIPEWEED), CardType.POSSESSION)); action.appendEffect( new PlayoutDecisionEffect(game.getUserFeedback(), playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Filters.possessionClass(PossessionClass.PIPE), Integer.MAX_VALUE) { + new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, PossessionClass.PIPE, Integer.MAX_VALUE) { @Override public void decisionMade(String result) throws DecisionResultInvalidException { int spotCount = getValidatedResult(result); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_091.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_091.java index e66ac3066..2e25605a8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_091.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_091.java @@ -47,7 +47,7 @@ public class Card1_091 extends AbstractAttachableFPPossession { new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.keyword(Keyword.PIPEWEED), CardType.POSSESSION)); action.appendEffect( new PlayoutDecisionEffect(game.getUserFeedback(), playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Filters.possessionClass(PossessionClass.PIPE), Integer.MAX_VALUE) { + new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, PossessionClass.PIPE, Integer.MAX_VALUE) { @Override public void decisionMade(String result) throws DecisionResultInvalidException { int spotCount = getValidatedResult(result); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_102.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_102.java index 415a20252..5f850b6d0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_102.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_102.java @@ -28,7 +28,7 @@ public class Card1_102 extends AbstractOldEvent { public PlayEventAction getPlayCardAction(String playerId, LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { final PlayEventAction action = new PlayEventAction(self); action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose GONDOR of SHIRE companion bearing a hand weapon", Filters.or(Culture.GONDOR, Culture.SHIRE), CardType.COMPANION, Filters.hasAttached(Filters.possessionClass(PossessionClass.HAND_WEAPON))) { + new ChooseActiveCardEffect(self, playerId, "Choose GONDOR of SHIRE companion bearing a hand weapon", Filters.or(Culture.GONDOR, Culture.SHIRE), CardType.COMPANION, Filters.hasAttached(PossessionClass.HAND_WEAPON)) { @Override protected void cardSelected(LotroGame game, PhysicalCard companion) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java index 7ff067846..c40134a29 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java @@ -49,7 +49,7 @@ public class Card1_285 extends AbstractAttachableFPPossession { new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.keyword(Keyword.PIPEWEED), CardType.POSSESSION)); action.appendEffect( new PlayoutDecisionEffect(game.getUserFeedback(), playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Filters.possessionClass(PossessionClass.PIPE), Integer.MAX_VALUE) { + new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, PossessionClass.PIPE, Integer.MAX_VALUE) { @Override public void decisionMade(String result) throws DecisionResultInvalidException { int spotCount = getValidatedResult(result); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_292.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_292.java index d34701e10..c8d35b2c4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_292.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_292.java @@ -45,7 +45,7 @@ public class Card1_292 extends AbstractAttachableFPPossession { new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.keyword(Keyword.PIPEWEED), CardType.POSSESSION)); action.appendEffect( new PlayoutDecisionEffect(game.getUserFeedback(), playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Filters.possessionClass(PossessionClass.PIPE), Integer.MAX_VALUE) { + new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, PossessionClass.PIPE, Integer.MAX_VALUE) { @Override public void decisionMade(String result) throws DecisionResultInvalidException { int spotCount = getValidatedResult(result); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_345.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_345.java index ed5198fbf..ea0485120 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_345.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_345.java @@ -39,8 +39,8 @@ public class Card1_345 extends AbstractSite { Filters.and( Filters.side(Side.SHADOW), Filters.or( - Filters.possessionClass(PossessionClass.HAND_WEAPON), - Filters.possessionClass(PossessionClass.RANGED_WEAPON)) + PossessionClass.HAND_WEAPON, + PossessionClass.RANGED_WEAPON) ))); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_347.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_347.java index 9db14c622..0abcdf936 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_347.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_347.java @@ -31,7 +31,7 @@ public class Card1_347 extends AbstractSite { CardType.COMPANION, CardType.MINION), Filters.hasAttached( - Filters.possessionClass(PossessionClass.HAND_WEAPON)) + PossessionClass.HAND_WEAPON) ), Keyword.DAMAGE); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_005.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_005.java index 5cb750a3e..b96d39a59 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_005.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_005.java @@ -31,7 +31,7 @@ public class Card2_005 extends AbstractOldEvent { new ChooseActiveCardEffect(self, playerId, "Choose a Dwarf", Filters.race(Race.DWARF)) { @Override protected void cardSelected(LotroGame game, PhysicalCard dwarf) { - boolean has2Weapons = Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.attachedTo(Filters.sameCard(dwarf)), Filters.possessionClass(PossessionClass.HAND_WEAPON)) == 2; + boolean has2Weapons = Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.attachedTo(Filters.sameCard(dwarf)), PossessionClass.HAND_WEAPON) == 2; if (has2Weapons) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_025.java index 58a11f6c0..de60de18a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_025.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_025.java @@ -37,10 +37,10 @@ public class Card2_025 extends AbstractAlly { public Modifier getAlwaysOnModifier(PhysicalCard self) { return new TwilightCostModifier(self, Filters.or( - Filters.possessionClass(PossessionClass.SHIELD), - Filters.possessionClass(PossessionClass.ARMOR), - Filters.possessionClass(PossessionClass.HELM), - Filters.possessionClass(PossessionClass.HAND_WEAPON) + PossessionClass.SHIELD, + PossessionClass.ARMOR, + PossessionClass.HELM, + PossessionClass.HAND_WEAPON ), 1); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_027.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_027.java index 085ebebbb..2508eaab7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_027.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_027.java @@ -36,7 +36,7 @@ public class Card2_027 extends AbstractOldEvent { List attachedToGandalf = game.getGameState().getAttachedCards(gandalf); if (gandalf != null && PlayConditions.canExert(self, game.getGameState(), game.getModifiersQuerying(), 2, Filters.sameCard(gandalf)) - && Filters.filter(attachedToGandalf, game.getGameState(), game.getModifiersQuerying(), Filters.possessionClass(PossessionClass.STAFF)).size() > 0) + && Filters.filter(attachedToGandalf, game.getGameState(), game.getModifiersQuerying(), PossessionClass.STAFF).size() > 0) return true; return false; } @@ -45,7 +45,7 @@ public class Card2_027 extends AbstractOldEvent { public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { PlayEventAction action = new PlayEventAction(self); action.appendCost( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.possessionClass(PossessionClass.STAFF), Filters.attachedTo(Filters.gandalf))); + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, PossessionClass.STAFF, Filters.attachedTo(Filters.gandalf))); action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.gandalf)); action.appendCost( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_030.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_030.java index 78c0ca60c..219fcb229 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_030.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_030.java @@ -28,7 +28,7 @@ public class Card2_030 extends AbstractOldEvent { @Override public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { return super.checkPlayRequirements(playerId, game, self, twilightModifier, ignoreRoamingPenalty) - && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.gandalf, Filters.hasAttached(Filters.possessionClass(PossessionClass.STAFF))); + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.gandalf, Filters.hasAttached(PossessionClass.STAFF)); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_039.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_039.java index d4cec88f1..0999562de 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_039.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_039.java @@ -49,9 +49,9 @@ public class Card2_039 extends AbstractOldEvent { Filters.side(Side.FREE_PEOPLE), CardType.POSSESSION, Filters.or( - Filters.possessionClass(PossessionClass.ARMOR), - Filters.possessionClass(PossessionClass.HELM), - Filters.possessionClass(PossessionClass.SHIELD) + PossessionClass.ARMOR, + PossessionClass.HELM, + PossessionClass.SHIELD )))); else action.appendEffect( @@ -59,9 +59,9 @@ public class Card2_039 extends AbstractOldEvent { action, playerId, 1, 1, CardType.POSSESSION, Filters.or( - Filters.possessionClass(PossessionClass.ARMOR), - Filters.possessionClass(PossessionClass.HELM), - Filters.possessionClass(PossessionClass.SHIELD) + PossessionClass.ARMOR, + PossessionClass.HELM, + PossessionClass.SHIELD ))); return action; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_056.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_056.java index 9395036f0..5f5315339 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_056.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_056.java @@ -46,7 +46,7 @@ public class Card2_056 extends AbstractPermanent { action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.balrog)); action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.possessionClass(PossessionClass.RANGED_WEAPON))); + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, PossessionClass.RANGED_WEAPON)); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_074.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_074.java index 7351ebf59..578535a8f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_074.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_074.java @@ -53,9 +53,9 @@ public class Card2_074 extends AbstractAttachable { action.appendEffect( new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.or( - Filters.possessionClass(PossessionClass.HELM), - Filters.possessionClass(PossessionClass.SHIELD), - Filters.possessionClass(PossessionClass.ARMOR)), + PossessionClass.HELM, + PossessionClass.SHIELD, + PossessionClass.ARMOR), Filters.attachedTo( Filters.inSkirmishAgainst(Filters.hasAttached(self))))); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/shire/Card3_107.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/shire/Card3_107.java index e93450e48..5692dca48 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/shire/Card3_107.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/shire/Card3_107.java @@ -46,7 +46,7 @@ public class Card3_107 extends AbstractAttachableFPPossession { new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.keyword(Keyword.PIPEWEED), CardType.POSSESSION)); action.appendEffect( new PlayoutDecisionEffect(game.getUserFeedback(), playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Filters.possessionClass(PossessionClass.PIPE), Integer.MAX_VALUE) { + new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, PossessionClass.PIPE, Integer.MAX_VALUE) { @Override public void decisionMade(String result) throws DecisionResultInvalidException { final int spotCount = getValidatedResult(result); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java index 8df0578bb..c898f536d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java @@ -49,7 +49,7 @@ public class Card3_084 extends AbstractOldEvent { final int twilightCost = revealedCard.getBlueprint().getTwilightCost(); if (twilightCost > 0) { action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose companion", CardType.COMPANION, Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) { + new ChooseActiveCardEffect(self, playerId, "Choose companion", CardType.COMPANION, Filters.hasAttached(PossessionClass.RANGED_WEAPON)) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { for (int i = 0; i < twilightCost; i++) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java index 86cd595f9..b49b07a7a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java @@ -46,7 +46,7 @@ public class Card4_065 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } }, 1)); modifiers.add( @@ -54,7 +54,7 @@ public class Card4_065 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } }, Keyword.DAMAGE, 1)); modifiers.add( @@ -62,7 +62,7 @@ public class Card4_065 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } })); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_080.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_080.java index 96ff7384b..56df64f1f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_080.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_080.java @@ -41,7 +41,7 @@ public class Card4_080 extends AbstractCompanion { @Override public List getAlwaysOnModifiers(LotroGame game, final PhysicalCard self) { return Collections.singletonList( - new AbstractModifier(self, "The twilight cost of each ranged weapon played on Ordulus is -1.", Filters.possessionClass(PossessionClass.RANGED_WEAPON), ModifierEffect.TWILIGHT_COST_MODIFIER) { + new AbstractModifier(self, "The twilight cost of each ranged weapon played on Ordulus is -1.", PossessionClass.RANGED_WEAPON, ModifierEffect.TWILIGHT_COST_MODIFIER) { @Override public int getPlayOnTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, PhysicalCard target) { if (target == self) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_081.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_081.java index 374ade0ec..987764680 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_081.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_081.java @@ -48,7 +48,7 @@ public class Card4_081 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } }, 2)); modifiers.add( @@ -56,7 +56,7 @@ public class Card4_081 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } })); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_086.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_086.java index d3b5f20c5..6265ff3ab 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_086.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_086.java @@ -50,7 +50,7 @@ public class Card4_086 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } }, -2)); modifiers.add( @@ -58,7 +58,7 @@ public class Card4_086 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } })); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_100.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_100.java index fc9bd438e..137197f22 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_100.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_100.java @@ -43,7 +43,7 @@ public class Card4_100 extends AbstractAttachableFPPossession { @Override protected List getNonBasicStatsModifiers(PhysicalCard self) { return Collections.singletonList( - new MayNotBearModifier(self, Filters.hasAttached(self), Filters.possessionClass(PossessionClass.HAND_WEAPON))); + new MayNotBearModifier(self, Filters.hasAttached(self), PossessionClass.HAND_WEAPON)); } @Override @@ -51,7 +51,7 @@ public class Card4_100 extends AbstractAttachableFPPossession { if (PlayConditions.played(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.sameCard(self))) { RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( - new DiscardCardsFromPlayEffect(self, Filters.and(Filters.attachedTo(Filters.hasAttached(self)), Filters.possessionClass(PossessionClass.HAND_WEAPON)))); + new DiscardCardsFromPlayEffect(self, Filters.and(Filters.attachedTo(Filters.hasAttached(self)), PossessionClass.HAND_WEAPON))); return Collections.singletonList(action); } if (effectResult.getType() == EffectResult.Type.START_OF_PHASE diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_196.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_196.java index d91f783f7..191115b82 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_196.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_196.java @@ -50,7 +50,7 @@ public class Card4_196 extends AbstractAttachable { action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.hasAttached(self))); action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.side(Side.FREE_PEOPLE), Filters.possessionClass(PossessionClass.MOUNT))); + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.side(Side.FREE_PEOPLE), PossessionClass.MOUNT)); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_013.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_013.java index 998f28ed4..3c6a50c26 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_013.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_013.java @@ -47,7 +47,7 @@ public class Card5_013 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } }, 2)); modifiers.add( @@ -55,7 +55,7 @@ public class Card5_013 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } })); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/elven/Card6_023.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/elven/Card6_023.java index 9a03ae795..00415a794 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/elven/Card6_023.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/elven/Card6_023.java @@ -47,7 +47,7 @@ public class Card6_023 extends AbstractCompanion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.possessionClass(PossessionClass.RANGED_WEAPON))) > 0; + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(PossessionClass.RANGED_WEAPON)) > 0; } })); modifiers.add( diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java index ddafcf85b..c29bb9771 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java @@ -85,7 +85,14 @@ public class Filters { }; } - public static Filter possessionClass(final PossessionClass possessionClass) { + public static final Map _possessionClassFilterMap = new HashMap(); + + static { + for (PossessionClass possessionClass : PossessionClass.values()) + _possessionClassFilterMap.put(possessionClass, possessionClass(possessionClass)); + } + + private static Filter possessionClass(final PossessionClass possessionClass) { return new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { @@ -231,7 +238,7 @@ public class Filters { public static final Filter galadriel = Filters.name("Galadriel"); - public static final Filter weapon = Filters.or(Filters.possessionClass(PossessionClass.HAND_WEAPON), Filters.possessionClass(PossessionClass.RANGED_WEAPON)); + public static final Filter weapon = Filters.or(PossessionClass.HAND_WEAPON, PossessionClass.RANGED_WEAPON); public static final Filter inSkirmish = new Filter() { @Override @@ -622,7 +629,7 @@ public class Filters { else if (filter instanceof Keyword) return Filters.keyword((Keyword) filter); else if (filter instanceof PossessionClass) - return Filters.possessionClass((PossessionClass) filter); + return _possessionClassFilterMap.get((PossessionClass) filter); else if (filter instanceof Race) return Filters.race((Race) filter); else if (filter instanceof Side) @@ -682,7 +689,7 @@ public class Filters { public static final Filter unboundCompanion = Filters.and(CardType.COMPANION, Filters.not(Filters.keyword(Keyword.RING_BOUND))); public static final Filter roaminMinion = Filters.and(CardType.MINION, Filters.keyword(Keyword.ROAMING)); - public static final Filter mounted = Filters.hasAttached(Filters.possessionClass(PossessionClass.MOUNT)); + public static final Filter mounted = Filters.hasAttached(PossessionClass.MOUNT); private static class SpotFilterCardInPlayVisitor implements PhysicalCardVisitor { private GameState _gameState;