- Cards that remove keyword bonuses (like "Trapped and Alone") now correctly remove the keyword bonuses.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<? extends Modifier> 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));
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<pre style="font-size:80%">
|
||||
<b>26 Jan. 2012</b>
|
||||
- Cards that remove keyword bonuses (like "Trapped and Alone") now correctly remove the keyword bonuses.
|
||||
|
||||
<b>24 Jan. 2012</b>
|
||||
- "Horse of Rohan" now requires to spot ROHAN Man.
|
||||
- Ring-bearer can't be discarded or returned to hand.
|
||||
|
||||
Reference in New Issue
Block a user