From b925a5628dfc45143a3f2d3f9c043a5346dda970 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 18 Nov 2011 01:48:36 +0000 Subject: [PATCH] Moving static block up, so that it works. --- .../com/gempukku/lotro/filters/Filters.java | 118 +++++++----------- 1 file changed, 47 insertions(+), 71 deletions(-) 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 3236619df..daf8046ab 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 @@ -14,6 +14,53 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import java.util.*; public class Filters { + private static final Map _typeFilterMap = new HashMap(); + private static final Map _possessionClassFilterMap = new HashMap(); + private static final Map _signetFilterMap = new HashMap(); + private static final Map _raceFilterMap = new HashMap(); + private static final Map _zoneFilterMap = new HashMap(); + private static final Map _sideFilterMap = new HashMap(); + private static final Map _cultureFilterMap = new HashMap(); + private static final Map _keywordFilterMap = new HashMap(); + + static { + for (Culture culture : Culture.values()) + _cultureFilterMap.put(culture, culture(culture)); + for (Side side : Side.values()) + _sideFilterMap.put(side, side(side)); + for (Zone zone : Zone.values()) + _zoneFilterMap.put(zone, zone(zone)); + for (Race race : Race.values()) + _raceFilterMap.put(race, race(race)); + for (Signet signet : Signet.values()) + _signetFilterMap.put(signet, signet(signet)); + for (PossessionClass possessionClass : PossessionClass.values()) + _possessionClassFilterMap.put(possessionClass, possessionClass(possessionClass)); + for (CardType cardType : CardType.values()) + _typeFilterMap.put(cardType, type(cardType)); + for (Keyword keyword : Keyword.values()) + _keywordFilterMap.put(keyword, keyword(keyword)); + + // Some simple shortcuts for filters + _keywordFilterMap.put(Keyword.RING_BEARER, + new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + return gameState.getRingBearer(gameState.getCurrentPlayerId()) == physicalCard; + } + }); + _keywordFilterMap.put(Keyword.RANGER, Filters.and(CardType.COMPANION, keyword(Keyword.RANGER))); + + // Minion groups + _keywordFilterMap.put(Keyword.SOUTHRON, Filters.and(CardType.MINION, keyword(Keyword.SOUTHRON))); + _keywordFilterMap.put(Keyword.EASTERLING, Filters.and(CardType.MINION, keyword(Keyword.EASTERLING))); + _keywordFilterMap.put(Keyword.CORSAIR, Filters.and(CardType.MINION, keyword(Keyword.CORSAIR))); + _keywordFilterMap.put(Keyword.TRACKER, Filters.and(CardType.MINION, keyword(Keyword.TRACKER))); + _keywordFilterMap.put(Keyword.WARG_RIDER, Filters.and(CardType.MINION, keyword(Keyword.WARG_RIDER))); + _keywordFilterMap.put(Keyword.BESIEGER, Filters.and(CardType.MINION, keyword(Keyword.BESIEGER))); + } + + public static boolean canSpot(GameState gameState, ModifiersQuerying modifiersQuerying, Filterable... filters) { Filter filter = Filters.and(filters); SpotFilterCardInPlayVisitor visitor = new SpotFilterCardInPlayVisitor(gameState, modifiersQuerying, filter); @@ -85,12 +132,6 @@ public class Filters { }; } - 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() { @@ -362,13 +403,6 @@ public class Filters { } }; - private static final Map _signetFilterMap = new HashMap(); - - static { - for (Signet signet : Signet.values()) - _signetFilterMap.put(signet, signet(signet)); - } - private static Filter signet(final Signet signet) { return new Filter() { @Override @@ -378,13 +412,6 @@ public class Filters { }; } - private static final Map _raceFilterMap = new HashMap(); - - static { - for (Race race : Race.values()) - _raceFilterMap.put(race, race(race)); - } - private static Filter race(final Race race) { return new Filter() { @Override @@ -397,12 +424,6 @@ public class Filters { }; } - private static final Map _sideFilterMap = new HashMap(); - - static { - for (Side side : Side.values()) - _sideFilterMap.put(side, side(side)); - } private static Filter side(final Side side) { return new Filter() { @@ -502,13 +523,6 @@ public class Filters { }; } - private static final Map _zoneFilterMap = new HashMap(); - - static { - for (Zone zone : Zone.values()) - _zoneFilterMap.put(zone, zone(zone)); - } - private static Filter zone(final Zone zone) { return new Filter() { @Override @@ -545,13 +559,6 @@ public class Filters { }; } - private static final Map _typeFilterMap = new HashMap(); - - static { - for (CardType cardType : CardType.values()) - _typeFilterMap.put(cardType, type(cardType)); - } - private static Filter type(final CardType cardType) { return new Filter() { @Override @@ -595,12 +602,6 @@ public class Filters { } }; - private static final Map _cultureFilterMap = new HashMap(); - - static { - for (Culture culture : Culture.values()) - _cultureFilterMap.put(culture, culture(culture)); - } private static Filter culture(final Culture culture) { return new Filter() { @@ -611,31 +612,6 @@ public class Filters { }; } - private static final Map _keywordFilterMap = new HashMap(); - - static { - for (Keyword keyword : Keyword.values()) - _keywordFilterMap.put(keyword, keyword(keyword)); - - // Some simple shortcuts for filters - _keywordFilterMap.put(Keyword.RING_BEARER, - new Filter() { - @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - return gameState.getRingBearer(gameState.getCurrentPlayerId()) == physicalCard; - } - }); - _keywordFilterMap.put(Keyword.RANGER, Filters.and(CardType.COMPANION, keyword(Keyword.RANGER))); - - // Minion groups - _keywordFilterMap.put(Keyword.SOUTHRON, Filters.and(CardType.MINION, keyword(Keyword.SOUTHRON))); - _keywordFilterMap.put(Keyword.EASTERLING, Filters.and(CardType.MINION, keyword(Keyword.EASTERLING))); - _keywordFilterMap.put(Keyword.CORSAIR, Filters.and(CardType.MINION, keyword(Keyword.CORSAIR))); - _keywordFilterMap.put(Keyword.TRACKER, Filters.and(CardType.MINION, keyword(Keyword.TRACKER))); - _keywordFilterMap.put(Keyword.WARG_RIDER, Filters.and(CardType.MINION, keyword(Keyword.WARG_RIDER))); - _keywordFilterMap.put(Keyword.BESIEGER, Filters.and(CardType.MINION, keyword(Keyword.BESIEGER))); - } - private static Filter keyword(final Keyword keyword) { return new Filter() { @Override