"Overwhelming Numbers"
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user