From 0f364aa6fe25b34d2ae2c76523e4e0f7877be99d Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 4 Dec 2011 05:41:31 +0000 Subject: [PATCH] Splitting the Keyword ModifierEffect into 3 to speed up querying. --- .../cards/modifiers/CancelKeywordBonusModifier.java | 2 +- .../lotro/logic/modifiers/KeywordModifier.java | 2 +- .../gempukku/lotro/logic/modifiers/ModifierEffect.java | 6 ++++-- .../gempukku/lotro/logic/modifiers/ModifiersLogic.java | 10 +++++----- .../lotro/logic/modifiers/RemoveKeywordModifier.java | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CancelKeywordBonusModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CancelKeywordBonusModifier.java index 81e51aad1..7bc27a857 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CancelKeywordBonusModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CancelKeywordBonusModifier.java @@ -13,7 +13,7 @@ public class CancelKeywordBonusModifier extends AbstractModifier implements Keyw private Keyword _keyword; public CancelKeywordBonusModifier(PhysicalCard source, Keyword keyword, Filter affectFilter) { - super(source, "Cancel " + keyword.getHumanReadable() + " keyword", affectFilter, ModifierEffect.KEYWORD_MODIFIER); + super(source, "Cancel " + keyword.getHumanReadable() + " keyword", affectFilter, ModifierEffect.CANCEL_KEYWORD_BONUS_MODIFIER); _keyword = keyword; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/KeywordModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/KeywordModifier.java index 4f6aec90c..cbfbde690 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/KeywordModifier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/KeywordModifier.java @@ -24,7 +24,7 @@ public class KeywordModifier extends AbstractModifier implements KeywordAffectin } public KeywordModifier(PhysicalCard physicalCard, Filterable affectFilter, Condition condition, Keyword keyword, Evaluator evaluator) { - super(physicalCard, null, affectFilter, condition, ModifierEffect.KEYWORD_MODIFIER); + super(physicalCard, null, affectFilter, condition, ModifierEffect.GIVE_KEYWORD_MODIFIER); _keyword = keyword; _evaluator = evaluator; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifierEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifierEffect.java index 368cd3162..15f6dd72e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifierEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifierEffect.java @@ -1,12 +1,14 @@ package com.gempukku.lotro.logic.modifiers; public enum ModifierEffect { - SIGNET_MODIFIER, KEYWORD_MODIFIER, STRENGTH_MODIFIER, VITALITY_MODIFIER, RESISTANCE_MODIFIER, SITE_NUMBER_MODIFIER, TWILIGHT_COST_MODIFIER, OVERWHELM_MODIFIER, + SIGNET_MODIFIER, STRENGTH_MODIFIER, VITALITY_MODIFIER, RESISTANCE_MODIFIER, SITE_NUMBER_MODIFIER, TWILIGHT_COST_MODIFIER, OVERWHELM_MODIFIER, WOUND_MODIFIER, BURDEN_MODIFIER, THREAT_MODIFIER, PRESENCE_MODIFIER, ARCHERY_MODIFIER, MOVE_LIMIT_MODIFIER, ACTION_MODIFIER, ASSIGNMENT_MODIFIER, DISCARD_FROM_PLAY_MODIFIER, DISCARD_NOT_FROM_PLAY, LOOK_OR_REVEAL_MODIFIER, SPOT_MODIFIER, TARGET_MODIFIER, EXTRA_ACTION_MODIFIER, INITIATIVE_MODIFIER, TEXT_MODIFIER, - SPECIAL_FLAG_MODIFIER + SPECIAL_FLAG_MODIFIER, + + REMOVE_KEYWORD_MODIFIER, GIVE_KEYWORD_MODIFIER, CANCEL_KEYWORD_BONUS_MODIFIER } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java index cc9aec768..778b62bd3 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java @@ -207,7 +207,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { if (isCandidateForKeywordRemovalWithTextRemoval(gameState, physicalCard, keyword) && hasTextRemoved(gameState, physicalCard)) return false; - for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.KEYWORD_MODIFIER, keyword, physicalCard)) { + for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.REMOVE_KEYWORD_MODIFIER, keyword, physicalCard)) { if (modifier.isKeywordRemoved(gameState, this, physicalCard, keyword)) return false; } @@ -215,7 +215,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { if (physicalCard.getBlueprint().hasKeyword(keyword)) return true; - for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.KEYWORD_MODIFIER, keyword, physicalCard)) { + for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.GIVE_KEYWORD_MODIFIER, keyword, physicalCard)) { if (appliesKeywordModifier(gameState, modifier.getSource(), keyword)) if (modifier.hasKeyword(gameState, this, physicalCard, keyword)) return true; @@ -233,13 +233,13 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { if (isCandidateForKeywordRemovalWithTextRemoval(gameState, physicalCard, keyword) && hasTextRemoved(gameState, physicalCard)) return 0; - for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.KEYWORD_MODIFIER, keyword, physicalCard)) { + for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.REMOVE_KEYWORD_MODIFIER, keyword, physicalCard)) { if (modifier.isKeywordRemoved(gameState, this, physicalCard, keyword)) return 0; } int result = physicalCard.getBlueprint().getKeywordCount(keyword); - for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.KEYWORD_MODIFIER, keyword, physicalCard)) { + for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.GIVE_KEYWORD_MODIFIER, keyword, physicalCard)) { if (appliesKeywordModifier(gameState, modifier.getSource(), keyword)) result += modifier.getKeywordCountModifier(gameState, this, physicalCard, keyword); } @@ -261,7 +261,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { private boolean appliesKeywordModifier(GameState gameState, PhysicalCard modifierSource, Keyword keyword) { if (modifierSource == null) return true; - for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.KEYWORD_MODIFIER, keyword, modifierSource)) { + for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.CANCEL_KEYWORD_BONUS_MODIFIER, keyword, modifierSource)) { if (!modifier.appliesKeywordModifier(gameState, this, modifierSource, keyword)) return false; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/RemoveKeywordModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/RemoveKeywordModifier.java index b2d6431ab..9d23cfb3f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/RemoveKeywordModifier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/RemoveKeywordModifier.java @@ -13,7 +13,7 @@ public class RemoveKeywordModifier extends AbstractModifier implements KeywordAf } public RemoveKeywordModifier(PhysicalCard physicalCard, Filterable affectFilter, Condition condition, Keyword keyword) { - super(physicalCard, "Loses " + keyword.getHumanReadable() + " keyword(s)", affectFilter, condition, ModifierEffect.KEYWORD_MODIFIER); + super(physicalCard, "Loses " + keyword.getHumanReadable() + " keyword(s)", affectFilter, condition, ModifierEffect.REMOVE_KEYWORD_MODIFIER); _keyword = keyword; }