"Overwhelming Numbers"

This commit is contained in:
marcins78
2013-01-24 14:24:48 +00:00
parent 2b2eb926f3
commit 453353d1d6
7 changed files with 79 additions and 10 deletions

View File

@@ -0,0 +1,36 @@
package com.gempukku.lotro.cards.modifiers.evaluator;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
public class CountSpottableEvaluator implements Evaluator {
private int _over;
private Filterable[] _filters;
private Integer _limit;
public CountSpottableEvaluator(Filterable... filters) {
this(null, filters);
}
public CountSpottableEvaluator(Integer limit, Filterable... filters) {
this(0, limit, filters);
}
public CountSpottableEvaluator(int over, Integer limit, Filterable... filters) {
_over = over;
_filters = filters;
_limit = limit;
}
@Override
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
final int active = Math.max(0, Filters.countSpottable(gameState, modifiersQuerying, _filters) - _over);
if (_limit == null)
return active;
return Math.min(_limit, active);
}
}

View File

@@ -1,7 +1,7 @@
package com.gempukku.lotro.cards.set20.dunland;
import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race;
@@ -30,7 +30,7 @@ public class Card20_007 extends AbstractMinion {
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new StrengthModifier(self, self, null, new CountActiveEvaluator(Side.FREE_PEOPLE, CardType.POSSESSION)));
new StrengthModifier(self, self, null, new CountSpottableEvaluator(Side.FREE_PEOPLE, CardType.POSSESSION)));
return modifiers;
}
}

View File

@@ -1,7 +1,7 @@
package com.gempukku.lotro.cards.set20.dunland;
import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.filters.Filters;
@@ -29,7 +29,7 @@ public class Card20_012 extends AbstractMinion {
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new StrengthModifier(self, self, null, new CountActiveEvaluator(Filters.not(self), Culture.DUNLAND, Race.MAN)));
new StrengthModifier(self, self, null, new CountSpottableEvaluator(Filters.not(self), Culture.DUNLAND, Race.MAN)));
return modifiers;
}
}

View File

@@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set20.dunland;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
@@ -22,7 +22,7 @@ public class Card20_023 extends AbstractEvent {
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CountActiveEvaluator(CardType.POSSESSION), Culture.DUNLAND, Race.MAN));
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CountSpottableEvaluator(CardType.POSSESSION), Culture.DUNLAND, Race.MAN));
return action;
}
}

View File

@@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set20.elven;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.MultiplyEvaluator;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.PhysicalCard;
@@ -25,7 +25,7 @@ public class Card20_095 extends AbstractEvent {
PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
new MultiplyEvaluator(-1, new CountActiveEvaluator(CardType.ALLY, Keyword.RIVENDELL)), CardType.MINION));
new MultiplyEvaluator(-1, new CountSpottableEvaluator(CardType.ALLY, Keyword.RIVENDELL)), CardType.MINION));
return action;
}
}

View File

@@ -1,7 +1,7 @@
package com.gempukku.lotro.cards.set20.fallenRealms;
import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
@@ -28,6 +28,6 @@ public class Card20_127 extends AbstractMinion {
@Override
public Modifier getAlwaysOnModifier(PhysicalCard self) {
return new StrengthModifier(self, self, null,
new CountActiveEvaluator(Filters.not(self), Keyword.EASTERLING));
new CountSpottableEvaluator(Filters.not(self), Keyword.EASTERLING));
}
}

View File

@@ -0,0 +1,33 @@
package com.gempukku.lotro.cards.set20.fallenRealms;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
/**
* 2
* Overwhelming Numbers
* Fallen Realms Event • Skirmish
* Make an Easterling strength +1 for each Easterling you can spot.
*/
public class Card20_132 extends AbstractEvent {
public Card20_132() {
super(Side.SHADOW, 2, Culture.FALLEN_REALMS, "Overwhelming Numbers", Phase.SKIRMISH);
}
@Override
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
new CountSpottableEvaluator(Keyword.EASTERLING), Keyword.EASTERLING));
return action;
}
}