Removing CompositeModifier

This commit is contained in:
marcins78@gmail.com
2011-09-27 10:52:49 +00:00
parent 9a2bfd6ab8
commit 0309ae32b2
2 changed files with 9 additions and 7 deletions

View File

@@ -9,7 +9,6 @@ import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
public class StrengthModifier extends AbstractModifier {
private Condition _condition;
private int _modifier;
public StrengthModifier(PhysicalCard source, Filter affectFilter, int modifier) {
@@ -17,15 +16,12 @@ public class StrengthModifier extends AbstractModifier {
}
public StrengthModifier(PhysicalCard source, Filter affectFilter, Condition condition, int modifier) {
super(source, "Strength " + ((modifier < 0) ? modifier : ("+" + modifier)), affectFilter, new ModifierEffect[]{ModifierEffect.STRENGTH_MODIFIER});
_condition = condition;
super(source, "Strength " + ((modifier < 0) ? modifier : ("+" + modifier)), affectFilter, condition, new ModifierEffect[]{ModifierEffect.STRENGTH_MODIFIER});
_modifier = modifier;
}
@Override
public int getStrength(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, int result) {
if (_condition == null || _condition.isFullfilled(gameState, modifiersQuerying))
return result + _modifier;
return result;
return result + _modifier;
}
}

View File

@@ -15,12 +15,18 @@ public abstract class AbstractModifier implements Modifier {
private PhysicalCard _physicalCard;
private String _text;
private Filter _affectFilter;
private Condition _condition;
private ModifierEffect[] _effects;
protected AbstractModifier(PhysicalCard source, String text, Filter affectFilter, ModifierEffect[] effects) {
this(source, text, affectFilter, null, effects);
}
protected AbstractModifier(PhysicalCard source, String text, Filter affectFilter, Condition condition, ModifierEffect[] effects) {
_physicalCard = source;
_text = text;
_affectFilter = affectFilter;
_condition = condition;
_effects = effects;
}
@@ -41,7 +47,7 @@ public abstract class AbstractModifier implements Modifier {
@Override
public boolean affectsCard(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
return _affectFilter != null && _affectFilter.accepts(gameState, modifiersQuerying, physicalCard);
return (_condition == null || _condition.isFullfilled(gameState, modifiersQuerying)) && (_affectFilter != null && _affectFilter.accepts(gameState, modifiersQuerying, physicalCard));
}
@Override