diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html index e132b8094..41610ff02 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html @@ -1,4 +1,7 @@
+8 Apr. 2013
+- Effects that remove card game text, should no longer cancel printed strength/vitality bonuses.
+
5 Apr. 2013
- "Deft In Their Movements" now applies only to sites that were in play at the time it was played.
- "Into the Wild" now should correctly count the sites in current region.
diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java
index 56df7247c..a17cb527d 100644
--- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java
+++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java
@@ -12,6 +12,7 @@ import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
+import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator;
import com.gempukku.lotro.logic.timing.Action;
import java.util.LinkedList;
@@ -78,9 +79,9 @@ public abstract class AbstractAttachableFPPossession extends AbstractAttachable
public final List extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List modifiers = new LinkedList();
if (_strength != 0)
- modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), _strength));
+ modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), null, new ConstantEvaluator(_strength), true));
if (_vitality != 0)
- modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), _vitality));
+ modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), _vitality, true));
List extends Modifier> extraModifiers = getNonBasicStatsModifiers(self);
if (extraModifiers != null)
diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/VitalityModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/VitalityModifier.java
index ee9f5b8ad..eddb6aa79 100644
--- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/VitalityModifier.java
+++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/VitalityModifier.java
@@ -9,14 +9,25 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
public class VitalityModifier extends AbstractModifier {
private int _modifier;
+ private boolean _nonCardTextModifier;
public VitalityModifier(PhysicalCard source, Filterable affectFilter, int modifier) {
+ this(source, affectFilter, modifier, false);
+ }
+
+ public VitalityModifier(PhysicalCard source, Filterable affectFilter, int modifier, boolean nonCardTextModifier) {
super(source, "Vitality " + ((modifier < 0) ? modifier : ("+" + modifier)), affectFilter, ModifierEffect.VITALITY_MODIFIER);
_modifier = modifier;
+ _nonCardTextModifier = nonCardTextModifier;
}
@Override
public int getVitalityModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
return _modifier;
}
+
+ @Override
+ public boolean isNonCardTextModifier() {
+ return _nonCardTextModifier;
+ }
}
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/AbstractModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/AbstractModifier.java
index 7893f1bc9..0ee8fcb84 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/AbstractModifier.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/AbstractModifier.java
@@ -34,6 +34,11 @@ public abstract class AbstractModifier implements Modifier {
_effect = effect;
}
+ @Override
+ public boolean isNonCardTextModifier() {
+ return false;
+ }
+
@Override
public Condition getCondition() {
return _condition;
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/Modifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/Modifier.java
index f2051d422..5ce7c9eca 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/Modifier.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/Modifier.java
@@ -20,6 +20,8 @@ public interface Modifier {
public ModifierEffect getModifierEffect();
+ public boolean isNonCardTextModifier();
+
public Condition getCondition();
public boolean affectsCard(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard);
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 52935a19a..a639938cf 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
@@ -137,7 +137,9 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying {
_skipSet.add(modifier);
Condition condition = modifier.getCondition();
if (condition == null || condition.isFullfilled(gameState, this))
- if (modifierEffect == ModifierEffect.TEXT_MODIFIER || modifier.getSource() == null || !hasTextRemoved(gameState, modifier.getSource())) {
+ if (modifierEffect == ModifierEffect.TEXT_MODIFIER || modifier.getSource() == null ||
+ modifier.isNonCardTextModifier() ||
+ !hasTextRemoved(gameState, modifier.getSource())) {
if (card == null || modifier.affectsCard(gameState, this, card))
liveModifiers.add(modifier);
}
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/StrengthModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/StrengthModifier.java
index 0ee2be6a1..76a1f58bf 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/StrengthModifier.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/StrengthModifier.java
@@ -8,6 +8,7 @@ import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
public class StrengthModifier extends AbstractModifier {
private Evaluator _evaluator;
+ private boolean _nonCardTextModifier;
public StrengthModifier(PhysicalCard source, Filterable affectFilter, int modifier) {
this(source, affectFilter, null, modifier);
@@ -18,8 +19,13 @@ public class StrengthModifier extends AbstractModifier {
}
public StrengthModifier(PhysicalCard source, Filterable affectFilter, Condition condition, Evaluator evaluator) {
+ this(source, affectFilter, condition, evaluator, false);
+ }
+
+ public StrengthModifier(PhysicalCard source, Filterable affectFilter, Condition condition, Evaluator evaluator, boolean nonCardTextModifier) {
super(source, null, affectFilter, condition, ModifierEffect.STRENGTH_MODIFIER);
_evaluator = evaluator;
+ _nonCardTextModifier = nonCardTextModifier;
}
@Override
@@ -35,4 +41,9 @@ public class StrengthModifier extends AbstractModifier {
public int getStrengthModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
return _evaluator.evaluateExpression(gameState, modifiersQuerying, physicalCard);
}
+
+ @Override
+ public boolean isNonCardTextModifier() {
+ return _nonCardTextModifier;
+ }
}