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 7bacfd03a..a107d58a0 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 @@ -189,7 +189,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { public boolean hasKeyword(GameState gameState, PhysicalCard physicalCard, Keyword keyword) { LoggingThreadLocal.logMethodStart(physicalCard, "hasKeyword " + keyword.getHumanReadable()); try { - if (hasTextRemoved(gameState, physicalCard)) + if (isCandidateForKeywordRemovalWithTextRemoval(gameState, physicalCard, keyword) && hasTextRemoved(gameState, physicalCard)) return false; for (Modifier modifier : getModifiers(gameState, ModifierEffect.KEYWORD_MODIFIER)) { @@ -219,7 +219,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { public int getKeywordCount(GameState gameState, PhysicalCard physicalCard, Keyword keyword) { LoggingThreadLocal.logMethodStart(physicalCard, "getKeywordCount " + keyword.getHumanReadable()); try { - if (hasTextRemoved(gameState, physicalCard)) + if (isCandidateForKeywordRemovalWithTextRemoval(gameState, physicalCard, keyword) && hasTextRemoved(gameState, physicalCard)) return 0; for (Modifier modifier : getModifiers(gameState, ModifierEffect.KEYWORD_MODIFIER)) { @@ -242,6 +242,17 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { } } + private boolean isCandidateForKeywordRemovalWithTextRemoval(GameState gameState, PhysicalCard physicalCard, Keyword keyword) { + if (keyword == Keyword.RING_BEARER) + return false; + if (keyword == Keyword.ROAMING) + return false; + if (keyword == Keyword.RING_BOUND) + if (gameState.getRingBearer(physicalCard.getOwner()) == physicalCard) + return false; + return true; + } + private boolean appliesKeywordModifier(GameState gameState, PhysicalCard modifierSource, Keyword keyword) { if (modifierSource == null) return true;