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/CancelKeywordBonusTargetModifier.java similarity index 78% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CancelKeywordBonusModifier.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CancelKeywordBonusTargetModifier.java index c47ebad6e..7e0a4b229 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/CancelKeywordBonusTargetModifier.java @@ -10,12 +10,12 @@ import com.gempukku.lotro.logic.modifiers.KeywordAffectingModifier; import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; -public class CancelKeywordBonusModifier extends AbstractModifier implements KeywordAffectingModifier { +public class CancelKeywordBonusTargetModifier extends AbstractModifier implements KeywordAffectingModifier { private Keyword _keyword; private Filterable _sourceFilter; - public CancelKeywordBonusModifier(PhysicalCard source, Keyword keyword, Filterable affectFilter, Filterable sourceFilter) { - super(source, "Cancel " + keyword.getHumanReadable() + " keyword", affectFilter, ModifierEffect.CANCEL_KEYWORD_BONUS_MODIFIER); + public CancelKeywordBonusTargetModifier(PhysicalCard source, Keyword keyword, Filterable affectFilter, Filterable sourceFilter) { + super(source, "Cancel " + keyword.getHumanReadable() + " keyword", affectFilter, ModifierEffect.CANCEL_KEYWORD_BONUS_TARGET_MODIFIER); _keyword = keyword; _sourceFilter = sourceFilter; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/wraith/Card10_057.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/wraith/Card10_057.java index 6e2fb59a7..b47e2a89e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/wraith/Card10_057.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/wraith/Card10_057.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.set10.wraith; import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.modifiers.CancelKeywordBonusModifier; +import com.gempukku.lotro.cards.modifiers.CancelKeywordBonusTargetModifier; import com.gempukku.lotro.cards.modifiers.CancelStrengthBonusTargetModifier; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; @@ -39,7 +39,7 @@ public class Card10_057 extends AbstractMinion { Filters.and(CardType.COMPANION, Filters.inSkirmishAgainst(self)), CardType.POSSESSION)); modifiers.add( - new CancelKeywordBonusModifier(self, Keyword.DAMAGE, + new CancelKeywordBonusTargetModifier(self, Keyword.DAMAGE, Filters.and(CardType.COMPANION, Filters.inSkirmishAgainst(self)), CardType.POSSESSION)); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_087.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_087.java index af0e945df..c9831e8fe 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_087.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_087.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set11.men; import com.gempukku.lotro.cards.AbstractAttachable; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.modifiers.CancelKeywordBonusModifier; +import com.gempukku.lotro.cards.modifiers.CancelKeywordBonusTargetModifier; import com.gempukku.lotro.cards.modifiers.CancelStrengthBonusTargetModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filter; @@ -47,7 +47,7 @@ public class Card11_087 extends AbstractAttachable { Filters.and(Filters.hasAttached(self), Filters.inSkirmishAgainst(Culture.MEN, CardType.MINION)), CardType.POSSESSION)); modifiers.add( - new CancelKeywordBonusModifier(self, Keyword.DAMAGE, + new CancelKeywordBonusTargetModifier(self, Keyword.DAMAGE, Filters.and(Filters.hasAttached(self), Filters.inSkirmishAgainst(Culture.MEN, CardType.MINION)), CardType.POSSESSION)); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_072.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_072.java index 4e55a0c2f..acfc8e18c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_072.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_072.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.set3.isengard; import com.gempukku.lotro.cards.AbstractPermanent; -import com.gempukku.lotro.cards.modifiers.CancelKeywordBonusModifier; +import com.gempukku.lotro.cards.modifiers.CancelKeywordBonusTargetModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -28,7 +28,7 @@ public class Card3_072 extends AbstractPermanent { @Override public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { return Collections.singletonList( - new CancelKeywordBonusModifier(self, Keyword.DAMAGE, + new CancelKeywordBonusTargetModifier(self, Keyword.DAMAGE, Filters.and(Filters.character, Filters.inSkirmishAgainst(Culture.ISENGARD, Race.ORC)), Filters.weapon)); } 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 6d84051d1..1d0afd715 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 @@ -15,5 +15,5 @@ public enum ModifierEffect { ADDITIONAL_CARD_TYPE, - REMOVE_KEYWORD_MODIFIER, GIVE_KEYWORD_MODIFIER, CANCEL_KEYWORD_BONUS_MODIFIER + REMOVE_KEYWORD_MODIFIER, GIVE_KEYWORD_MODIFIER, CANCEL_KEYWORD_BONUS_TARGET_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 311abf0a6..20649b818 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 @@ -216,7 +216,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { return true; for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.GIVE_KEYWORD_MODIFIER, keyword, physicalCard)) { - if (appliesKeywordModifier(gameState, modifier.getSource(), keyword)) + if (appliesKeywordModifier(gameState, physicalCard, modifier.getSource(), keyword)) if (modifier.hasKeyword(gameState, this, physicalCard, keyword)) return true; } @@ -240,7 +240,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { int result = physicalCard.getBlueprint().getKeywordCount(keyword); for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.GIVE_KEYWORD_MODIFIER, keyword, physicalCard)) { - if (appliesKeywordModifier(gameState, modifier.getSource(), keyword)) + if (appliesKeywordModifier(gameState, physicalCard, modifier.getSource(), keyword)) result += modifier.getKeywordCountModifier(gameState, this, physicalCard, keyword); } return Math.max(0, result); @@ -258,10 +258,10 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { return true; } - private boolean appliesKeywordModifier(GameState gameState, PhysicalCard modifierSource, Keyword keyword) { + private boolean appliesKeywordModifier(GameState gameState, PhysicalCard affecting, PhysicalCard modifierSource, Keyword keyword) { if (modifierSource == null) return true; - for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.CANCEL_KEYWORD_BONUS_MODIFIER, keyword, modifierSource)) { + for (Modifier modifier : getKeywordModifiersAffectingCard(gameState, ModifierEffect.CANCEL_KEYWORD_BONUS_TARGET_MODIFIER, keyword, affecting)) { if (!modifier.appliesKeywordModifier(gameState, this, modifierSource, keyword)) return false; } 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 f048e8629..f08d79721 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,7 @@
+26 Jan. 2012
+- Cards that remove keyword bonuses (like "Trapped and Alone") now correctly remove the keyword bonuses.
+
 24 Jan. 2012
 - "Horse of Rohan" now requires to spot ROHAN Man.
 - Ring-bearer can't be discarded or returned to hand.