- Effects that remove card game text, should no longer cancel printed strength/vitality bonuses.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
<pre style="font-size:80%">
|
||||
<b>8 Apr. 2013</b>
|
||||
- Effects that remove card game text, should no longer cancel printed strength/vitality bonuses.
|
||||
|
||||
<b>5 Apr. 2013</b>
|
||||
- "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.
|
||||
|
||||
@@ -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<Modifier> modifiers = new LinkedList<Modifier>();
|
||||
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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,11 @@ public abstract class AbstractModifier implements Modifier {
|
||||
_effect = effect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNonCardTextModifier() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Condition getCondition() {
|
||||
return _condition;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user